{"cells":[{"cell_type":"code","source":"#安装所需模块\n# !pip install pyecharts\n# !pip install snapshot_selenium","metadata":{},"execution_count":76,"outputs":[]},{"cell_type":"markdown","source":"#模块导入","metadata":{}},{"cell_type":"code","source":"\n%matplotlib inline\nimport pandas as pd\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport re\nfrom pyecharts import options as opts\nfrom pyecharts.charts import Bar\nfrom pyecharts.render import make_snapshot\nfrom snapshot_selenium import snapshot\nfrom pyecharts.charts import Geo\nfrom pyecharts.globals import ChartType, SymbolType\nfrom pyecharts.charts import Map \nsns.set()#切换到seaborn的默认运行配置","metadata":{},"execution_count":77,"outputs":[]},{"cell_type":"markdown","source":"#数据层","metadata":{}},{"cell_type":"markdown","source":"##数据导入与总览","metadata":{}},{"cell_type":"code","source":"data=pd.read_csv(\"datalab/231715/listings.csv\")\ndata.info()","metadata":{},"execution_count":78,"outputs":[{"name":"stdout","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 28452 entries, 0 to 28451\nData columns (total 16 columns):\nid                                28452 non-null int64\nname                              28451 non-null object\nhost_id                           28452 non-null int64\nhost_name                         28452 non-null object\nneighbourhood_group               0 non-null float64\nneighbourhood                     28452 non-null object\nlatitude                          28452 non-null float64\nlongitude                         28452 non-null float64\nroom_type                         28452 non-null object\nprice                             28452 non-null int64\nminimum_nights                    28452 non-null int64\nnumber_of_reviews                 28452 non-null int64\nlast_review                       17294 non-null object\nreviews_per_month                 17294 non-null float64\ncalculated_host_listings_count    28452 non-null int64\navailability_365                  28452 non-null int64\ndtypes: float64(4), int64(7), object(5)\nmemory usage: 3.5+ MB\n","output_type":"stream"}]},{"cell_type":"code","source":"data.head(3)","metadata":{},"execution_count":79,"outputs":[{"execution_count":79,"output_type":"execute_result","data":{"text/plain":"       id                                         name  host_id  \\\n0   44054         Modern and Comfortable Living in CBD   192875   \n1  100213  The Great Wall Box Deluxe Suite A团园长城小院东院套房   527062   \n2  128496          Heart of Beijing: House with View 2   467520   \n\n         host_name  neighbourhood_group   neighbourhood  latitude  longitude  \\\n0  East Apartments                  NaN  朝阳区 / Chaoyang  39.89503  116.45163   \n1              Joe                  NaN     密云县 / Miyun  40.68434  117.17231   \n2            Cindy                  NaN             东城区  39.93213  116.42200   \n\n         room_type  price  minimum_nights  number_of_reviews last_review  \\\n0  Entire home/apt    792               1                 89  2019-03-04   \n1     Private room   1201               1                  2  2017-10-08   \n2  Entire home/apt    389               3                259  2019-02-05   \n\n   reviews_per_month  calculated_host_listings_count  availability_365  \n0               0.85                               9               341  \n1               0.10                               4                 0  \n2               2.70                               1                93  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>name</th>\n      <th>host_id</th>\n      <th>host_name</th>\n      <th>neighbourhood_group</th>\n      <th>neighbourhood</th>\n      <th>latitude</th>\n      <th>longitude</th>\n      <th>room_type</th>\n      <th>price</th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>last_review</th>\n      <th>reviews_per_month</th>\n      <th>calculated_host_listings_count</th>\n      <th>availability_365</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>44054</td>\n      <td>Modern and Comfortable Living in CBD</td>\n      <td>192875</td>\n      <td>East Apartments</td>\n      <td>NaN</td>\n      <td>朝阳区 / Chaoyang</td>\n      <td>39.89503</td>\n      <td>116.45163</td>\n      <td>Entire home/apt</td>\n      <td>792</td>\n      <td>1</td>\n      <td>89</td>\n      <td>2019-03-04</td>\n      <td>0.85</td>\n      <td>9</td>\n      <td>341</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>100213</td>\n      <td>The Great Wall Box Deluxe Suite A团园长城小院东院套房</td>\n      <td>527062</td>\n      <td>Joe</td>\n      <td>NaN</td>\n      <td>密云县 / Miyun</td>\n      <td>40.68434</td>\n      <td>117.17231</td>\n      <td>Private room</td>\n      <td>1201</td>\n      <td>1</td>\n      <td>2</td>\n      <td>2017-10-08</td>\n      <td>0.10</td>\n      <td>4</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>128496</td>\n      <td>Heart of Beijing: House with View 2</td>\n      <td>467520</td>\n      <td>Cindy</td>\n      <td>NaN</td>\n      <td>东城区</td>\n      <td>39.93213</td>\n      <td>116.42200</td>\n      <td>Entire home/apt</td>\n      <td>389</td>\n      <td>3</td>\n      <td>259</td>\n      <td>2019-02-05</td>\n      <td>2.70</td>\n      <td>1</td>\n      <td>93</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"data.describe()","metadata":{},"execution_count":80,"outputs":[{"execution_count":80,"output_type":"execute_result","data":{"text/plain":"                 id       host_id  neighbourhood_group      latitude  \\\ncount  2.845200e+04  2.845200e+04                  0.0  28452.000000   \nmean   2.628583e+07  1.442821e+08                  NaN     39.983225   \nstd    6.403312e+06  7.057051e+07                  NaN      0.186984   \nmin    4.405400e+04  1.928750e+05                  NaN     39.455810   \n25%    2.245616e+07  8.708958e+07                  NaN     39.897330   \n50%    2.787765e+07  1.525464e+08                  NaN     39.930905   \n75%    3.134482e+07  2.061464e+08                  NaN     39.990470   \nmax    3.395441e+07  2.563498e+08                  NaN     40.949660   \n\n          longitude         price  minimum_nights  number_of_reviews  \\\ncount  28452.000000  28452.000000    28452.000000       28452.000000   \nmean     116.442000    611.203325        2.729685           7.103156   \nstd        0.204796   1623.535077       17.920932          16.815067   \nmin      115.473390      0.000000        1.000000           0.000000   \n25%      116.355283    235.000000        1.000000           0.000000   \n50%      116.434665    389.000000        1.000000           1.000000   \n75%      116.491122    577.000000        1.000000           6.000000   \nmax      117.495270  68983.000000     1125.000000         322.000000   \n\n       reviews_per_month  calculated_host_listings_count  availability_365  \ncount       17294.000000                    28452.000000      28452.000000  \nmean            1.319757                       12.818290        220.342120  \nstd             1.581243                       29.261321        138.430677  \nmin             0.010000                        1.000000          0.000000  \n25%             0.290000                        2.000000         87.000000  \n50%             0.800000                        5.000000        209.000000  \n75%             1.750000                       11.000000        361.000000  \nmax            20.000000                      222.000000        365.000000  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>host_id</th>\n      <th>neighbourhood_group</th>\n      <th>latitude</th>\n      <th>longitude</th>\n      <th>price</th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>reviews_per_month</th>\n      <th>calculated_host_listings_count</th>\n      <th>availability_365</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>count</th>\n      <td>2.845200e+04</td>\n      <td>2.845200e+04</td>\n      <td>0.0</td>\n      <td>28452.000000</td>\n      <td>28452.000000</td>\n      <td>28452.000000</td>\n      <td>28452.000000</td>\n      <td>28452.000000</td>\n      <td>17294.000000</td>\n      <td>28452.000000</td>\n      <td>28452.000000</td>\n    </tr>\n    <tr>\n      <th>mean</th>\n      <td>2.628583e+07</td>\n      <td>1.442821e+08</td>\n      <td>NaN</td>\n      <td>39.983225</td>\n      <td>116.442000</td>\n      <td>611.203325</td>\n      <td>2.729685</td>\n      <td>7.103156</td>\n      <td>1.319757</td>\n      <td>12.818290</td>\n      <td>220.342120</td>\n    </tr>\n    <tr>\n      <th>std</th>\n      <td>6.403312e+06</td>\n      <td>7.057051e+07</td>\n      <td>NaN</td>\n      <td>0.186984</td>\n      <td>0.204796</td>\n      <td>1623.535077</td>\n      <td>17.920932</td>\n      <td>16.815067</td>\n      <td>1.581243</td>\n      <td>29.261321</td>\n      <td>138.430677</td>\n    </tr>\n    <tr>\n      <th>min</th>\n      <td>4.405400e+04</td>\n      <td>1.928750e+05</td>\n      <td>NaN</td>\n      <td>39.455810</td>\n      <td>115.473390</td>\n      <td>0.000000</td>\n      <td>1.000000</td>\n      <td>0.000000</td>\n      <td>0.010000</td>\n      <td>1.000000</td>\n      <td>0.000000</td>\n    </tr>\n    <tr>\n      <th>25%</th>\n      <td>2.245616e+07</td>\n      <td>8.708958e+07</td>\n      <td>NaN</td>\n      <td>39.897330</td>\n      <td>116.355283</td>\n      <td>235.000000</td>\n      <td>1.000000</td>\n      <td>0.000000</td>\n      <td>0.290000</td>\n      <td>2.000000</td>\n      <td>87.000000</td>\n    </tr>\n    <tr>\n      <th>50%</th>\n      <td>2.787765e+07</td>\n      <td>1.525464e+08</td>\n      <td>NaN</td>\n      <td>39.930905</td>\n      <td>116.434665</td>\n      <td>389.000000</td>\n      <td>1.000000</td>\n      <td>1.000000</td>\n      <td>0.800000</td>\n      <td>5.000000</td>\n      <td>209.000000</td>\n    </tr>\n    <tr>\n      <th>75%</th>\n      <td>3.134482e+07</td>\n      <td>2.061464e+08</td>\n      <td>NaN</td>\n      <td>39.990470</td>\n      <td>116.491122</td>\n      <td>577.000000</td>\n      <td>1.000000</td>\n      <td>6.000000</td>\n      <td>1.750000</td>\n      <td>11.000000</td>\n      <td>361.000000</td>\n    </tr>\n    <tr>\n      <th>max</th>\n      <td>3.395441e+07</td>\n      <td>2.563498e+08</td>\n      <td>NaN</td>\n      <td>40.949660</td>\n      <td>117.495270</td>\n      <td>68983.000000</td>\n      <td>1125.000000</td>\n      <td>322.000000</td>\n      <td>20.000000</td>\n      <td>222.000000</td>\n      <td>365.000000</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"#数据清洗与处理","metadata":{}},{"cell_type":"code","source":"data.drop(\"neighbourhood_group\",axis=1,inplace=True)\ndata[\"number_of_reviews\"].fillna(value=data[\"number_of_reviews\"].median(),inplace=True) #中位值填充，极值差大\ndata[\"reviews_per_month\"].fillna(value=data[\"reviews_per_month\"].mean(),inplace=True) #均值填充\ndata[\"last_review\"].fillna(value=data[\"last_review\"].mode().iloc[0],inplace=True) #众数填充（多个众数时，填充第一个)\ndata[\"neighbourhood\"]=data[\"neighbourhood\"].apply(lambda x:re.sub(\"[A-Za-z0-9/]\", \"\",x)) #滤除非汉字部分","metadata":{},"execution_count":81,"outputs":[]},{"cell_type":"markdown","source":"#数据分析","metadata":{}},{"cell_type":"markdown","source":"##房东分析","metadata":{}},{"cell_type":"code","source":"df_host_id=data[\"host_id\"].value_counts().head(120)","metadata":{},"execution_count":82,"outputs":[]},{"cell_type":"code","source":"data[\"host_id\"].value_counts().describe()","metadata":{},"execution_count":83,"outputs":[{"execution_count":83,"output_type":"execute_result","data":{"text/plain":"count    10792.000000\nmean         2.636397\nstd          5.181313\nmin          1.000000\n25%          1.000000\n50%          1.000000\n75%          2.000000\nmax        222.000000\nName: host_id, dtype: float64"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：总共10792名房东；人均拥有2.63套房源；最小值为1，最大值为222，极差为221；标准差为5.18，标准差系数为1.97.由这些统计数据可得：房东拥有的房源数量差异较大，分布较为分散，少部分人占据绝大多数房子，符合帕累托法则。","metadata":{}},{"cell_type":"code","source":"# bar=Bar(init_opts=opts.InitOpts(renderer = \"svg\"))#设置导出为svg\nbar=Bar()\nbar.add_xaxis(df_host_id.index.tolist())\nbar.add_yaxis(\"\",df_host_id.values.tolist())\nbar.set_global_opts(title_opts=opts.TitleOpts(title=\"host_id Count\", subtitle=\"\"), \n                    visualmap_opts=opts.VisualMapOpts(is_show=True),\n                    toolbox_opts=opts.ToolboxOpts(is_show=True),\n                    xaxis_opts=opts.AxisOpts(name=\"host_id\",axislabel_opts=opts.LabelOpts(rotate=90,font_size =7))) #x轴刻度标签设置\nbar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))\nbar.render_notebook()\n# make_snapshot(snapshot, bar.render(), \"bar0.svg\") #导出为svg","metadata":{},"execution_count":84,"outputs":[{"execution_count":84,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb427507a58>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n        }\n    });\n</script>\n\n        <div id=\"af63922a9f2e4959aef82b877e1ecaa0\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts'], function(echarts) {\n                var chart_af63922a9f2e4959aef82b877e1ecaa0 = echarts.init(\n                    document.getElementById('af63922a9f2e4959aef82b877e1ecaa0'), 'white', {renderer: 'canvas'});\n                var option_af63922a9f2e4959aef82b877e1ecaa0 = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"bar\",\n            \"data\": [\n                222,\n                210,\n                115,\n                98,\n                77,\n                72,\n                66,\n                66,\n                64,\n                62,\n                61,\n                57,\n                51,\n                51,\n                48,\n                47,\n                46,\n                45,\n                43,\n                43,\n                42,\n                42,\n                41,\n                41,\n                41,\n                41,\n                39,\n                38,\n                37,\n                36,\n                35,\n                34,\n                33,\n                33,\n                33,\n                31,\n                31,\n                30,\n                30,\n                30,\n                29,\n                29,\n                28,\n                28,\n                28,\n                28,\n                28,\n                28,\n                27,\n                27,\n                27,\n                27,\n                27,\n                27,\n                26,\n                26,\n                26,\n                26,\n                26,\n                26,\n                26,\n                26,\n                25,\n                25,\n                25,\n                25,\n                25,\n                25,\n                25,\n                25,\n                25,\n                25,\n                25,\n                24,\n                24,\n                24,\n                24,\n                24,\n                24,\n                24,\n                23,\n                23,\n                23,\n                23,\n                23,\n                23,\n                23,\n                23,\n                23,\n                23,\n                22,\n                22,\n                22,\n                22,\n                22,\n                22,\n                22,\n                22,\n                22,\n                22,\n                22,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                21,\n                20,\n                20,\n                20,\n                20,\n                20\n            ],\n            \"barCategoryGap\": \"20%\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [\n                \"\"\n            ],\n            \"selected\": {\n                \"\": true\n            },\n            \"show\": true\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"xAxis\": [\n        {\n            \"name\": \"host_id\",\n            \"show\": true,\n            \"scale\": false,\n            \"nameLocation\": \"end\",\n            \"nameGap\": 15,\n            \"gridIndex\": 0,\n            \"axisLabel\": {\n                \"show\": true,\n                \"position\": \"top\",\n                \"rotate\": 90,\n                \"margin\": 8,\n                \"fontSize\": 7\n            },\n            \"inverse\": false,\n            \"offset\": 0,\n            \"splitNumber\": 5,\n            \"minInterval\": 0,\n            \"splitLine\": {\n                \"show\": false,\n                \"lineStyle\": {\n                    \"width\": 1,\n                    \"opacity\": 1,\n                    \"curveness\": 0,\n                    \"type\": \"solid\"\n                }\n            },\n            \"data\": [\n                209669028,\n                54436429,\n                156249912,\n                17619297,\n                156143513,\n                160411460,\n                20788084,\n                196377840,\n                67553380,\n                160674938,\n                147588904,\n                35181501,\n                45203646,\n                131565769,\n                185173263,\n                165368371,\n                198529612,\n                151027648,\n                230177305,\n                8837778,\n                119706958,\n                135222407,\n                14770202,\n                235081784,\n                169233777,\n                248100378,\n                247529157,\n                197910205,\n                139578376,\n                64255458,\n                187960049,\n                148353191,\n                100576006,\n                213468831,\n                35287975,\n                27240167,\n                60847977,\n                181417731,\n                136552084,\n                31280856,\n                204937846,\n                161626931,\n                127349262,\n                168658382,\n                216709379,\n                139363184,\n                155053807,\n                43986556,\n                136495629,\n                199608290,\n                159064202,\n                117444712,\n                209622388,\n                81238003,\n                215934073,\n                189725505,\n                184187839,\n                178748241,\n                84594172,\n                165590104,\n                66529174,\n                19482030,\n                29185435,\n                29605408,\n                146456130,\n                136561759,\n                151226826,\n                42565149,\n                230114738,\n                24399335,\n                192771130,\n                162737493,\n                29719851,\n                184003671,\n                99367920,\n                63572465,\n                151033879,\n                107964962,\n                195913111,\n                151727455,\n                139339588,\n                69955838,\n                45773267,\n                229677061,\n                52080918,\n                186604107,\n                86950707,\n                181718132,\n                135287911,\n                122047010,\n                213903652,\n                132023110,\n                141982809,\n                201988771,\n                153994278,\n                229754348,\n                177444791,\n                164104576,\n                128951070,\n                121622725,\n                153700545,\n                207500717,\n                167867524,\n                169638403,\n                73699657,\n                170462410,\n                84633406,\n                177779453,\n                42065892,\n                102340754,\n                242651382,\n                177988686,\n                99317741,\n                71442680,\n                103968626,\n                106213831,\n                134984392,\n                121225836,\n                152546448,\n                250241366\n            ]\n        }\n    ],\n    \"yAxis\": [\n        {\n            \"show\": true,\n            \"scale\": false,\n            \"nameLocation\": \"end\",\n            \"nameGap\": 15,\n            \"gridIndex\": 0,\n            \"inverse\": false,\n            \"offset\": 0,\n            \"splitNumber\": 5,\n            \"minInterval\": 0,\n            \"splitLine\": {\n                \"show\": false,\n                \"lineStyle\": {\n                    \"width\": 1,\n                    \"opacity\": 1,\n                    \"curveness\": 0,\n                    \"type\": \"solid\"\n                }\n            }\n        }\n    ],\n    \"title\": [\n        {\n            \"text\": \"host_id Count\"\n        }\n    ],\n    \"toolbox\": {\n        \"show\": true,\n        \"orient\": \"horizontal\",\n        \"itemSize\": 15,\n        \"itemGap\": 10,\n        \"left\": \"80%\",\n        \"feature\": {\n            \"saveAsImage\": {\n                \"show\": true,\n                \"title\": \"save as image\",\n                \"type\": \"png\"\n            },\n            \"restore\": {\n                \"show\": true,\n                \"title\": \"restore\"\n            },\n            \"dataView\": {\n                \"show\": true,\n                \"title\": \"data view\",\n                \"readOnly\": false\n            },\n            \"dataZoom\": {\n                \"show\": true,\n                \"title\": {\n                    \"zoom\": \"data zoom\",\n                    \"back\": \"data zoom restore\"\n                }\n            }\n        }\n    },\n    \"visualMap\": {\n        \"show\": true,\n        \"type\": \"continuous\",\n        \"min\": 0,\n        \"max\": 100,\n        \"inRange\": {\n            \"color\": [\n                \"#50a3ba\",\n                \"#eac763\",\n                \"#d94e5d\"\n            ]\n        },\n        \"calculable\": true,\n        \"splitNumber\": 5,\n        \"orient\": \"vertical\",\n        \"showLabel\": true\n    }\n};\n                chart_af63922a9f2e4959aef82b877e1ecaa0.setOption(option_af63922a9f2e4959aef82b877e1ecaa0);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：从分布形态来看，房东的房源数量呈现长尾分布，大量房源集中在少部分头部房东身上，而绝大多数房东的房源量仅为1.","metadata":{}},{"cell_type":"markdown","source":"##区域分析","metadata":{}},{"cell_type":"code","source":"data[\"neighbourhood\"]=data[\"neighbourhood\"].apply(lambda x: x.replace(\"县\",\"区\"))\ndf_neighbourhood=data[\"neighbourhood\"].value_counts()\ndf_neighbourhood","metadata":{},"execution_count":85,"outputs":[{"execution_count":85,"output_type":"execute_result","data":{"text/plain":"朝阳区       10810\n东城区        3346\n海淀区        3197\n丰台区        1758\n西城区        1701\n通州区        1290\n昌平区        1034\n密云区         935\n顺义区         920\n怀柔区         833\n大兴区         823\n延庆区         718\n房山区         579\n石景山区        213\n门头沟区        152\n平谷区         143\nName: neighbourhood, dtype: int64"},"metadata":{}}]},{"cell_type":"code","source":"df_neighbourhood.describe()","metadata":{},"execution_count":86,"outputs":[{"execution_count":86,"output_type":"execute_result","data":{"text/plain":"count       16.000000\nmean      1778.250000\nstd       2587.490509\nmin        143.000000\n25%        683.250000\n50%        927.500000\n75%       1715.250000\nmax      10810.000000\nName: neighbourhood, dtype: float64"},"metadata":{}}]},{"cell_type":"code","source":"from pyecharts.charts import Page, Pie\n\ndef pie_base() -> Pie:\n    c = (\n        Pie()\n        .add(\"\", [list(z) for z in zip(df_neighbourhood.index.tolist(), df_neighbourhood.values.tolist())])\n        .set_global_opts(title_opts=opts.TitleOpts(title=\"\"),legend_opts=opts.LegendOpts(is_show=False\n            ))\n        .set_series_opts(label_opts=opts.LabelOpts(formatter=\"{b}\"))\n    )\n    return c\npie_base().render_notebook()\n# pie_base().render()","metadata":{},"execution_count":87,"outputs":[{"execution_count":87,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb4113b5908>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n        }\n    });\n</script>\n\n        <div id=\"fb80d34e40af4171acddabfef13d5f10\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts'], function(echarts) {\n                var chart_fb80d34e40af4171acddabfef13d5f10 = echarts.init(\n                    document.getElementById('fb80d34e40af4171acddabfef13d5f10'), 'white', {renderer: 'canvas'});\n                var option_fb80d34e40af4171acddabfef13d5f10 = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"pie\",\n            \"clockwise\": true,\n            \"data\": [\n                {\n                    \"name\": \"\\u671d\\u9633\\u533a  \",\n                    \"value\": 10810\n                },\n                {\n                    \"name\": \"\\u4e1c\\u57ce\\u533a\",\n                    \"value\": 3346\n                },\n                {\n                    \"name\": \"\\u6d77\\u6dc0\\u533a\",\n                    \"value\": 3197\n                },\n                {\n                    \"name\": \"\\u4e30\\u53f0\\u533a  \",\n                    \"value\": 1758\n                },\n                {\n                    \"name\": \"\\u897f\\u57ce\\u533a\",\n                    \"value\": 1701\n                },\n                {\n                    \"name\": \"\\u901a\\u5dde\\u533a  \",\n                    \"value\": 1290\n                },\n                {\n                    \"name\": \"\\u660c\\u5e73\\u533a\",\n                    \"value\": 1034\n                },\n                {\n                    \"name\": \"\\u5bc6\\u4e91\\u533a  \",\n                    \"value\": 935\n                },\n                {\n                    \"name\": \"\\u987a\\u4e49\\u533a  \",\n                    \"value\": 920\n                },\n                {\n                    \"name\": \"\\u6000\\u67d4\\u533a  \",\n                    \"value\": 833\n                },\n                {\n                    \"name\": \"\\u5927\\u5174\\u533a  \",\n                    \"value\": 823\n                },\n                {\n                    \"name\": \"\\u5ef6\\u5e86\\u533a  \",\n                    \"value\": 718\n                },\n                {\n                    \"name\": \"\\u623f\\u5c71\\u533a\",\n                    \"value\": 579\n                },\n                {\n                    \"name\": \"\\u77f3\\u666f\\u5c71\\u533a\",\n                    \"value\": 213\n                },\n                {\n                    \"name\": \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n                    \"value\": 152\n                },\n                {\n                    \"name\": \"\\u5e73\\u8c37\\u533a  \",\n                    \"value\": 143\n                }\n            ],\n            \"radius\": [\n                \"0%\",\n                \"75%\"\n            ],\n            \"center\": [\n                \"50%\",\n                \"50%\"\n            ],\n            \"label\": {\n                \"show\": true,\n                \"position\": \"top\",\n                \"margin\": 8,\n                \"formatter\": \"{b}\"\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [\n                \"\\u671d\\u9633\\u533a  \",\n                \"\\u4e1c\\u57ce\\u533a\",\n                \"\\u6d77\\u6dc0\\u533a\",\n                \"\\u4e30\\u53f0\\u533a  \",\n                \"\\u897f\\u57ce\\u533a\",\n                \"\\u901a\\u5dde\\u533a  \",\n                \"\\u660c\\u5e73\\u533a\",\n                \"\\u5bc6\\u4e91\\u533a  \",\n                \"\\u987a\\u4e49\\u533a  \",\n                \"\\u6000\\u67d4\\u533a  \",\n                \"\\u5927\\u5174\\u533a  \",\n                \"\\u5ef6\\u5e86\\u533a  \",\n                \"\\u623f\\u5c71\\u533a\",\n                \"\\u77f3\\u666f\\u5c71\\u533a\",\n                \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n                \"\\u5e73\\u8c37\\u533a  \"\n            ],\n            \"selected\": {},\n            \"show\": false\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"title\": [\n        {}\n    ]\n};\n                chart_fb80d34e40af4171acddabfef13d5f10.setOption(option_fb80d34e40af4171acddabfef13d5f10);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"code","source":"c = (\n        Map()\n        .add(\n            \"geo\",\n            [list(z) for z in zip(df_neighbourhood.index.tolist(), df_neighbourhood.values.tolist())],\n            '北京',\n        )\n        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))\n        .set_global_opts(\n            visualmap_opts=opts.VisualMapOpts(max_=11000,is_piecewise=True),\n            title_opts=opts.TitleOpts(title=\"房源分布\"),\n        )\n    )\n\nc.render_notebook()","metadata":{},"execution_count":88,"outputs":[{"execution_count":88,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb4113b5cf8>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min', '北京':'https://assets.pyecharts.org/assets/maps/beijing'\n        }\n    });\n</script>\n\n        <div id=\"f8112f0d22004d019a4fbe2b412a67c6\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts', '北京'], function(echarts) {\n                var chart_f8112f0d22004d019a4fbe2b412a67c6 = echarts.init(\n                    document.getElementById('f8112f0d22004d019a4fbe2b412a67c6'), 'white', {renderer: 'canvas'});\n                var option_f8112f0d22004d019a4fbe2b412a67c6 = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"map\",\n            \"name\": \"geo\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"mapType\": \"\\u5317\\u4eac\",\n            \"data\": [\n                {\n                    \"name\": \"\\u671d\\u9633\\u533a  \",\n                    \"value\": 10810\n                },\n                {\n                    \"name\": \"\\u4e1c\\u57ce\\u533a\",\n                    \"value\": 3346\n                },\n                {\n                    \"name\": \"\\u6d77\\u6dc0\\u533a\",\n                    \"value\": 3197\n                },\n                {\n                    \"name\": \"\\u4e30\\u53f0\\u533a  \",\n                    \"value\": 1758\n                },\n                {\n                    \"name\": \"\\u897f\\u57ce\\u533a\",\n                    \"value\": 1701\n                },\n                {\n                    \"name\": \"\\u901a\\u5dde\\u533a  \",\n                    \"value\": 1290\n                },\n                {\n                    \"name\": \"\\u660c\\u5e73\\u533a\",\n                    \"value\": 1034\n                },\n                {\n                    \"name\": \"\\u5bc6\\u4e91\\u533a  \",\n                    \"value\": 935\n                },\n                {\n                    \"name\": \"\\u987a\\u4e49\\u533a  \",\n                    \"value\": 920\n                },\n                {\n                    \"name\": \"\\u6000\\u67d4\\u533a  \",\n                    \"value\": 833\n                },\n                {\n                    \"name\": \"\\u5927\\u5174\\u533a  \",\n                    \"value\": 823\n                },\n                {\n                    \"name\": \"\\u5ef6\\u5e86\\u533a  \",\n                    \"value\": 718\n                },\n                {\n                    \"name\": \"\\u623f\\u5c71\\u533a\",\n                    \"value\": 579\n                },\n                {\n                    \"name\": \"\\u77f3\\u666f\\u5c71\\u533a\",\n                    \"value\": 213\n                },\n                {\n                    \"name\": \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n                    \"value\": 152\n                },\n                {\n                    \"name\": \"\\u5e73\\u8c37\\u533a  \",\n                    \"value\": 143\n                }\n            ],\n            \"roam\": true,\n            \"zoom\": 1,\n            \"showLegendSymbol\": true,\n            \"emphasis\": {},\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [\n                \"geo\"\n            ],\n            \"selected\": {\n                \"geo\": true\n            },\n            \"show\": true\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"title\": [\n        {\n            \"text\": \"\\u623f\\u6e90\\u5206\\u5e03\"\n        }\n    ],\n    \"visualMap\": {\n        \"show\": true,\n        \"type\": \"piecewise\",\n        \"min\": 0,\n        \"max\": 11000,\n        \"inRange\": {\n            \"color\": [\n                \"#50a3ba\",\n                \"#eac763\",\n                \"#d94e5d\"\n            ]\n        },\n        \"calculable\": true,\n        \"splitNumber\": 5,\n        \"orient\": \"vertical\",\n        \"showLabel\": true\n    }\n};\n                chart_f8112f0d22004d019a4fbe2b412a67c6.setOption(option_f8112f0d22004d019a4fbe2b412a67c6);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：房源集中在朝阳、东城和海淀三个大区，占据了全部房源的70%左右，石景山区、门头沟区、平谷区等远离市中心的城区房源较少。","metadata":{}},{"cell_type":"code","source":"data.groupby(\"neighbourhood\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].median().sort_values(by=\"number_of_reviews\",ascending=False)","metadata":{},"execution_count":89,"outputs":[{"execution_count":89,"output_type":"execute_result","data":{"text/plain":"               minimum_nights  number_of_reviews  reviews_per_month  \\\nneighbourhood                                                         \n东城区                       1.0                3.0           1.319757   \n朝阳区                       1.0                2.0           1.319757   \n海淀区                       1.0                2.0           1.319757   \n西城区                       1.0                2.0           1.319757   \n丰台区                       1.0                1.0           1.319757   \n大兴区                       1.0                1.0           1.319757   \n昌平区                       1.0                1.0           1.319757   \n石景山区                      1.0                1.0           1.319757   \n顺义区                       1.0                1.0           1.319757   \n密云区                       1.0                0.0           1.319757   \n平谷区                       1.0                0.0           1.319757   \n延庆区                       1.0                0.0           1.319757   \n怀柔区                       1.0                0.0           1.319757   \n房山区                       1.0                0.0           1.319757   \n通州区                       1.0                0.0           1.319757   \n门头沟区                      1.0                0.0           1.319757   \n\n               availability_365  \nneighbourhood                    \n东城区                       168.0  \n朝阳区                       181.0  \n海淀区                       313.0  \n西城区                       180.0  \n丰台区                       298.0  \n大兴区                       351.0  \n昌平区                       181.0  \n石景山区                      316.0  \n顺义区                       297.5  \n密云区                       181.0  \n平谷区                       178.0  \n延庆区                       179.0  \n怀柔区                       346.0  \n房山区                       346.0  \n通州区                       359.0  \n门头沟区                      305.5  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>reviews_per_month</th>\n      <th>availability_365</th>\n    </tr>\n    <tr>\n      <th>neighbourhood</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>东城区</th>\n      <td>1.0</td>\n      <td>3.0</td>\n      <td>1.319757</td>\n      <td>168.0</td>\n    </tr>\n    <tr>\n      <th>朝阳区</th>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>1.319757</td>\n      <td>181.0</td>\n    </tr>\n    <tr>\n      <th>海淀区</th>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>1.319757</td>\n      <td>313.0</td>\n    </tr>\n    <tr>\n      <th>西城区</th>\n      <td>1.0</td>\n      <td>2.0</td>\n      <td>1.319757</td>\n      <td>180.0</td>\n    </tr>\n    <tr>\n      <th>丰台区</th>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>1.319757</td>\n      <td>298.0</td>\n    </tr>\n    <tr>\n      <th>大兴区</th>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>1.319757</td>\n      <td>351.0</td>\n    </tr>\n    <tr>\n      <th>昌平区</th>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>1.319757</td>\n      <td>181.0</td>\n    </tr>\n    <tr>\n      <th>石景山区</th>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>1.319757</td>\n      <td>316.0</td>\n    </tr>\n    <tr>\n      <th>顺义区</th>\n      <td>1.0</td>\n      <td>1.0</td>\n      <td>1.319757</td>\n      <td>297.5</td>\n    </tr>\n    <tr>\n      <th>密云区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>181.0</td>\n    </tr>\n    <tr>\n      <th>平谷区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>178.0</td>\n    </tr>\n    <tr>\n      <th>延庆区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>179.0</td>\n    </tr>\n    <tr>\n      <th>怀柔区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>346.0</td>\n    </tr>\n    <tr>\n      <th>房山区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>346.0</td>\n    </tr>\n    <tr>\n      <th>通州区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>359.0</td>\n    </tr>\n    <tr>\n      <th>门头沟区</th>\n      <td>1.0</td>\n      <td>0.0</td>\n      <td>1.319757</td>\n      <td>305.5</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"data.groupby(\"neighbourhood\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].mean().sort_values(by=\"number_of_reviews\",ascending=False)","metadata":{},"execution_count":90,"outputs":[{"execution_count":90,"output_type":"execute_result","data":{"text/plain":"               minimum_nights  number_of_reviews  reviews_per_month  \\\nneighbourhood                                                         \n东城区                  2.407053          14.340406           1.677971   \n西城区                  2.452675           8.847737           1.496890   \n朝阳区                  3.290934           8.220722           1.369384   \n海淀区                  3.686894           6.731936           1.251817   \n丰台区                  2.129693           5.385097           1.293091   \n石景山区                 1.845070           4.051643           1.168151   \n顺义区                  2.723913           3.777174           1.208822   \n大兴区                  2.221142           3.766707           1.084263   \n昌平区                  2.639265           2.611219           1.014224   \n房山区                  1.908463           2.580311           1.178904   \n密云区                  1.025668           2.268449           1.099628   \n通州区                  1.882171           2.206202           1.026900   \n怀柔区                  1.530612           1.899160           1.052463   \n平谷区                  1.006993           1.636364           1.070543   \n门头沟区                 1.605263           1.111842           0.999397   \n延庆区                  1.005571           0.873259           1.102420   \n\n               availability_365  \nneighbourhood                    \n东城区                  195.798864  \n西城区                  207.766608  \n朝阳区                  212.362905  \n海淀区                  227.202690  \n丰台区                  235.195108  \n石景山区                 231.812207  \n顺义区                  237.038043  \n大兴区                  250.302552  \n昌平区                  221.712766  \n房山区                  243.696028  \n密云区                  226.619251  \n通州区                  262.044961  \n怀柔区                  254.716687  \n平谷区                  206.622378  \n门头沟区                 239.309211  \n延庆区                  213.520891  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>reviews_per_month</th>\n      <th>availability_365</th>\n    </tr>\n    <tr>\n      <th>neighbourhood</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>东城区</th>\n      <td>2.407053</td>\n      <td>14.340406</td>\n      <td>1.677971</td>\n      <td>195.798864</td>\n    </tr>\n    <tr>\n      <th>西城区</th>\n      <td>2.452675</td>\n      <td>8.847737</td>\n      <td>1.496890</td>\n      <td>207.766608</td>\n    </tr>\n    <tr>\n      <th>朝阳区</th>\n      <td>3.290934</td>\n      <td>8.220722</td>\n      <td>1.369384</td>\n      <td>212.362905</td>\n    </tr>\n    <tr>\n      <th>海淀区</th>\n      <td>3.686894</td>\n      <td>6.731936</td>\n      <td>1.251817</td>\n      <td>227.202690</td>\n    </tr>\n    <tr>\n      <th>丰台区</th>\n      <td>2.129693</td>\n      <td>5.385097</td>\n      <td>1.293091</td>\n      <td>235.195108</td>\n    </tr>\n    <tr>\n      <th>石景山区</th>\n      <td>1.845070</td>\n      <td>4.051643</td>\n      <td>1.168151</td>\n      <td>231.812207</td>\n    </tr>\n    <tr>\n      <th>顺义区</th>\n      <td>2.723913</td>\n      <td>3.777174</td>\n      <td>1.208822</td>\n      <td>237.038043</td>\n    </tr>\n    <tr>\n      <th>大兴区</th>\n      <td>2.221142</td>\n      <td>3.766707</td>\n      <td>1.084263</td>\n      <td>250.302552</td>\n    </tr>\n    <tr>\n      <th>昌平区</th>\n      <td>2.639265</td>\n      <td>2.611219</td>\n      <td>1.014224</td>\n      <td>221.712766</td>\n    </tr>\n    <tr>\n      <th>房山区</th>\n      <td>1.908463</td>\n      <td>2.580311</td>\n      <td>1.178904</td>\n      <td>243.696028</td>\n    </tr>\n    <tr>\n      <th>密云区</th>\n      <td>1.025668</td>\n      <td>2.268449</td>\n      <td>1.099628</td>\n      <td>226.619251</td>\n    </tr>\n    <tr>\n      <th>通州区</th>\n      <td>1.882171</td>\n      <td>2.206202</td>\n      <td>1.026900</td>\n      <td>262.044961</td>\n    </tr>\n    <tr>\n      <th>怀柔区</th>\n      <td>1.530612</td>\n      <td>1.899160</td>\n      <td>1.052463</td>\n      <td>254.716687</td>\n    </tr>\n    <tr>\n      <th>平谷区</th>\n      <td>1.006993</td>\n      <td>1.636364</td>\n      <td>1.070543</td>\n      <td>206.622378</td>\n    </tr>\n    <tr>\n      <th>门头沟区</th>\n      <td>1.605263</td>\n      <td>1.111842</td>\n      <td>0.999397</td>\n      <td>239.309211</td>\n    </tr>\n    <tr>\n      <th>延庆区</th>\n      <td>1.005571</td>\n      <td>0.873259</td>\n      <td>1.102420</td>\n      <td>213.520891</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"分析:东西城区、朝阳区的房源评论数较多，需求较多。","metadata":{}},{"cell_type":"markdown","source":"##房屋类型分析","metadata":{}},{"cell_type":"code","source":"df_room_type=data[\"room_type\"].value_counts()\ndf_room_type","metadata":{},"execution_count":91,"outputs":[{"execution_count":91,"output_type":"execute_result","data":{"text/plain":"Entire home/apt    16955\nPrivate room        9838\nShared room         1659\nName: room_type, dtype: int64"},"metadata":{}}]},{"cell_type":"code","source":"def pie_rich_label() -> Pie:\n    c = (\n        Pie()\n        .add(\n            \"\",\n            [list(z) for z in zip(df_room_type.index.tolist(), df_room_type.values.tolist())],\n            radius=[\"40%\", \"55%\"],#控制环形图\n            label_opts=opts.LabelOpts(\n                position=\"outside\",\n                formatter=\"{a|{a}}{abg|}\\n{hr|}\\n {b|{b}: }{c}  {per|{d}%}  \",\n                background_color=\"#eee\",\n                border_color=\"#aaa\",\n                border_width=1,\n                border_radius=4,\n                rich={\n                    \"a\": {\"color\": \"#999\", \"lineHeight\": 22, \"align\": \"center\"},\n                    \"abg\": {\n                        \"backgroundColor\": \"#e3e3e3\",\n                        \"width\": \"100%\",\n                        \"align\": \"right\",\n                        \"height\": 22,\n                        \"borderRadius\": [4, 4, 0, 0],\n                    },\n                    \"hr\": {\n                        \"borderColor\": \"#aaa\",\n                        \"width\": \"100%\",\n                        \"borderWidth\": 0.5,\n                        \"height\": 0,\n                    },\n                    \"b\": {\"fontSize\": 16, \"lineHeight\": 33},\n                    \"per\": {\n                        \"color\": \"#eee\",\n                        \"backgroundColor\": \"#334455\",\n                        \"padding\": [2, 4],\n                        \"borderRadius\": 2,\n                    },\n                },\n            ),\n        )\n        .set_global_opts(title_opts=opts.TitleOpts(title=\"\"),legend_opts=opts.LegendOpts(is_show=False\n            ))\n    )\n    return c\npie_rich_label().render_notebook()","metadata":{},"execution_count":92,"outputs":[{"execution_count":92,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb40f9d6278>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n        }\n    });\n</script>\n\n        <div id=\"c33cb0acd87c46c58780d4a4599b7b38\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts'], function(echarts) {\n                var chart_c33cb0acd87c46c58780d4a4599b7b38 = echarts.init(\n                    document.getElementById('c33cb0acd87c46c58780d4a4599b7b38'), 'white', {renderer: 'canvas'});\n                var option_c33cb0acd87c46c58780d4a4599b7b38 = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"pie\",\n            \"clockwise\": true,\n            \"data\": [\n                {\n                    \"name\": \"Entire home/apt\",\n                    \"value\": 16955\n                },\n                {\n                    \"name\": \"Private room\",\n                    \"value\": 9838\n                },\n                {\n                    \"name\": \"Shared room\",\n                    \"value\": 1659\n                }\n            ],\n            \"radius\": [\n                \"40%\",\n                \"55%\"\n            ],\n            \"center\": [\n                \"50%\",\n                \"50%\"\n            ],\n            \"label\": {\n                \"show\": true,\n                \"position\": \"outside\",\n                \"margin\": 8,\n                \"formatter\": \"{a|{a}}{abg|}\\n{hr|}\\n {b|{b}: }{c}  {per|{d}%}  \",\n                \"backgroundColor\": \"#eee\",\n                \"borderColor\": \"#aaa\",\n                \"borderWidth\": 1,\n                \"borderRadius\": 4,\n                \"rich\": {\n                    \"a\": {\n                        \"color\": \"#999\",\n                        \"lineHeight\": 22,\n                        \"align\": \"center\"\n                    },\n                    \"abg\": {\n                        \"backgroundColor\": \"#e3e3e3\",\n                        \"width\": \"100%\",\n                        \"align\": \"right\",\n                        \"height\": 22,\n                        \"borderRadius\": [\n                            4,\n                            4,\n                            0,\n                            0\n                        ]\n                    },\n                    \"hr\": {\n                        \"borderColor\": \"#aaa\",\n                        \"width\": \"100%\",\n                        \"borderWidth\": 0.5,\n                        \"height\": 0\n                    },\n                    \"b\": {\n                        \"fontSize\": 16,\n                        \"lineHeight\": 33\n                    },\n                    \"per\": {\n                        \"color\": \"#eee\",\n                        \"backgroundColor\": \"#334455\",\n                        \"padding\": [\n                            2,\n                            4\n                        ],\n                        \"borderRadius\": 2\n                    }\n                }\n            }\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [\n                \"Entire home/apt\",\n                \"Private room\",\n                \"Shared room\"\n            ],\n            \"selected\": {},\n            \"show\": false\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"title\": [\n        {}\n    ]\n};\n                chart_c33cb0acd87c46c58780d4a4599b7b38.setOption(option_c33cb0acd87c46c58780d4a4599b7b38);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：目前市场上的房源以整租为主，占到60%左右上，而独立房间出租次之，房间合租则是最少。","metadata":{}},{"cell_type":"code","source":"data.groupby(\"room_type\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].median().sort_values(by=\"number_of_reviews\",ascending=False)","metadata":{},"execution_count":93,"outputs":[{"execution_count":93,"output_type":"execute_result","data":{"text/plain":"                 minimum_nights  number_of_reviews  reviews_per_month  \\\nroom_type                                                               \nEntire home/apt               1                  1           1.319757   \nPrivate room                  1                  1           1.319757   \nShared room                   1                  1           1.319757   \n\n                 availability_365  \nroom_type                          \nEntire home/apt               290  \nPrivate room                  180  \nShared room                   273  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>reviews_per_month</th>\n      <th>availability_365</th>\n    </tr>\n    <tr>\n      <th>room_type</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Entire home/apt</th>\n      <td>1</td>\n      <td>1</td>\n      <td>1.319757</td>\n      <td>290</td>\n    </tr>\n    <tr>\n      <th>Private room</th>\n      <td>1</td>\n      <td>1</td>\n      <td>1.319757</td>\n      <td>180</td>\n    </tr>\n    <tr>\n      <th>Shared room</th>\n      <td>1</td>\n      <td>1</td>\n      <td>1.319757</td>\n      <td>273</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"data.groupby(\"room_type\")[[\"minimum_nights\",\"number_of_reviews\",\"reviews_per_month\",\"availability_365\"]].mean().sort_values(by=\"number_of_reviews\",ascending=False)","metadata":{},"execution_count":94,"outputs":[{"execution_count":94,"output_type":"execute_result","data":{"text/plain":"                 minimum_nights  number_of_reviews  reviews_per_month  \\\nroom_type                                                               \nPrivate room           2.510673           7.610083           1.284395   \nEntire home/apt        2.809732           6.873371           1.356829   \nShared room            3.210368           6.445449           1.150570   \n\n                 availability_365  \nroom_type                          \nPrivate room           201.532832  \nEntire home/apt        230.702389  \nShared room            226.000603  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>reviews_per_month</th>\n      <th>availability_365</th>\n    </tr>\n    <tr>\n      <th>room_type</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>Private room</th>\n      <td>2.510673</td>\n      <td>7.610083</td>\n      <td>1.284395</td>\n      <td>201.532832</td>\n    </tr>\n    <tr>\n      <th>Entire home/apt</th>\n      <td>2.809732</td>\n      <td>6.873371</td>\n      <td>1.356829</td>\n      <td>230.702389</td>\n    </tr>\n    <tr>\n      <th>Shared room</th>\n      <td>3.210368</td>\n      <td>6.445449</td>\n      <td>1.150570</td>\n      <td>226.000603</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：从minimum_nights number_of_reviews reviews_per_month availability_365这个维度来看，在中位数这个量值来看，房屋类型之间无显著差异，而从均值来看，Private room的评论数最多，而Shared room 的月均评论数较多，说明这两种类型房源较受欢迎且其租客较青睐评论。","metadata":{}},{"cell_type":"markdown","source":"##价格分析","metadata":{}},{"cell_type":"code","source":"data[\"price\"].describe()","metadata":{},"execution_count":95,"outputs":[{"execution_count":95,"output_type":"execute_result","data":{"text/plain":"count    28452.000000\nmean       611.203325\nstd       1623.535077\nmin          0.000000\n25%        235.000000\n50%        389.000000\n75%        577.000000\nmax      68983.000000\nName: price, dtype: float64"},"metadata":{}}]},{"cell_type":"code","source":"fig,ax1=plt.subplots(1,1)\nsns.distplot(data.query(\"price<=3500\")[\"price\"],ax=ax1,bins=30) #面积分布情况（直方图 ）\nsns.kdeplot(data[data[\"price\"]<=3500][\"price\"],shade=True,ax=ax1)#生成核密度图","metadata":{},"execution_count":96,"outputs":[{"name":"stderr","text":"/opt/conda/lib/python3.6/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.\n  warnings.warn(\"The 'normed' kwarg is deprecated, and has been \"\n","output_type":"stream"},{"execution_count":96,"output_type":"execute_result","data":{"text/plain":"<matplotlib.axes._subplots.AxesSubplot at 0x7fb410fa8c88>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：整体上，价格比较集中，主要聚集在100-600之间， 最大值为68983可能为异常值，值得注意。","metadata":{}},{"cell_type":"code","source":"df_neighbourhood_price=data.groupby(\"neighbourhood\")[\"price\"].mean().sort_values(ascending=False)\ndf_neighbourhood_price2=data.groupby(\"neighbourhood\")[\"price\"].median().sort_values(ascending=False)\ndf_neighbourhood_price3=data.groupby(\"neighbourhood\")[\"price\"].min().sort_values(ascending=False)\nbar = (\n        Bar()\n        .add_xaxis(df_neighbourhood_price.index.tolist())\n        .add_yaxis(\"价格均值\", df_neighbourhood_price.values.tolist())\n        .add_yaxis(\"价格中位数\", df_neighbourhood_price2.values.tolist())\n        .add_yaxis(\"价格最小值\", df_neighbourhood_price3.values.tolist())\n        .set_global_opts(title_opts=opts.TitleOpts(title=\"Price-neighbourhood\"),\n                         xaxis_opts=opts.AxisOpts(name=\"\",axislabel_opts=opts.LabelOpts(rotate=-45,font_size =12)))\n        .set_series_opts(\n            label_opts=opts.LabelOpts(is_show=False),\n            markpoint_opts=opts.MarkPointOpts(\n                data=[\n                    opts.MarkPointItem(type_=\"max\", name=\"最大值\"),\n                    opts.MarkPointItem(type_=\"min\", name=\"最小值\"),\n                    opts.MarkPointItem(type_=\"average\", name=\"平均值\"),\n                ]\n            ),\n        )\n    )\nbar.render_notebook()\n","metadata":{},"execution_count":97,"outputs":[{"execution_count":97,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb4101ffb38>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n        }\n    });\n</script>\n\n        <div id=\"b530d02eeafd49a3a3d5c6ea95ddb17f\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts'], function(echarts) {\n                var chart_b530d02eeafd49a3a3d5c6ea95ddb17f = echarts.init(\n                    document.getElementById('b530d02eeafd49a3a3d5c6ea95ddb17f'), 'white', {renderer: 'canvas'});\n                var option_b530d02eeafd49a3a3d5c6ea95ddb17f = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"bar\",\n            \"name\": \"\\u4ef7\\u683c\\u5747\\u503c\",\n            \"data\": [\n                1589.7779111644659,\n                1238.9860724233984,\n                1174.803675048356,\n                1172.2657342657342,\n                966.9625668449198,\n                751.5855263157895,\n                712.4085475194262,\n                679.1502590673575,\n                667.9717391304348,\n                587.9870664315109,\n                489.5419198055893,\n                484.395282146161,\n                456.4610572411636,\n                405.5480620155039,\n                403.05164319248826,\n                384.63139931740614\n            ],\n            \"barCategoryGap\": \"20%\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"markPoint\": {\n                \"label\": {\n                    \"show\": true,\n                    \"position\": \"inside\",\n                    \"color\": \"#fff\",\n                    \"margin\": 8\n                },\n                \"data\": [\n                    {\n                        \"name\": \"\\u6700\\u5927\\u503c\",\n                        \"type\": \"max\"\n                    },\n                    {\n                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n                        \"type\": \"min\"\n                    },\n                    {\n                        \"name\": \"\\u5e73\\u5747\\u503c\",\n                        \"type\": \"average\"\n                    }\n                ]\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        },\n        {\n            \"type\": \"bar\",\n            \"name\": \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\",\n            \"data\": [\n                899.0,\n                678.0,\n                597.0,\n                550.0,\n                490.0,\n                450.0,\n                379.0,\n                369.0,\n                356.0,\n                336.0,\n                329.0,\n                329.0,\n                325.5,\n                315.0,\n                302.0,\n                268.0\n            ],\n            \"barCategoryGap\": \"20%\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"markPoint\": {\n                \"label\": {\n                    \"show\": true,\n                    \"position\": \"inside\",\n                    \"color\": \"#fff\",\n                    \"margin\": 8\n                },\n                \"data\": [\n                    {\n                        \"name\": \"\\u6700\\u5927\\u503c\",\n                        \"type\": \"max\"\n                    },\n                    {\n                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n                        \"type\": \"min\"\n                    },\n                    {\n                        \"name\": \"\\u5e73\\u5747\\u503c\",\n                        \"type\": \"average\"\n                    }\n                ]\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        },\n        {\n            \"type\": \"bar\",\n            \"name\": \"\\u4ef7\\u683c\\u6700\\u5c0f\\u503c\",\n            \"data\": [\n                87,\n                81,\n                81,\n                67,\n                67,\n                67,\n                67,\n                67,\n                60,\n                60,\n                60,\n                47,\n                47,\n                27,\n                0,\n                0\n            ],\n            \"barCategoryGap\": \"20%\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"markPoint\": {\n                \"label\": {\n                    \"show\": true,\n                    \"position\": \"inside\",\n                    \"color\": \"#fff\",\n                    \"margin\": 8\n                },\n                \"data\": [\n                    {\n                        \"name\": \"\\u6700\\u5927\\u503c\",\n                        \"type\": \"max\"\n                    },\n                    {\n                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n                        \"type\": \"min\"\n                    },\n                    {\n                        \"name\": \"\\u5e73\\u5747\\u503c\",\n                        \"type\": \"average\"\n                    }\n                ]\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [\n                \"\\u4ef7\\u683c\\u5747\\u503c\",\n                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\",\n                \"\\u4ef7\\u683c\\u6700\\u5c0f\\u503c\"\n            ],\n            \"selected\": {\n                \"\\u4ef7\\u683c\\u5747\\u503c\": true,\n                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\": true,\n                \"\\u4ef7\\u683c\\u6700\\u5c0f\\u503c\": true\n            },\n            \"show\": true\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"xAxis\": [\n        {\n            \"show\": true,\n            \"scale\": false,\n            \"nameLocation\": \"end\",\n            \"nameGap\": 15,\n            \"gridIndex\": 0,\n            \"axisLabel\": {\n                \"show\": true,\n                \"position\": \"top\",\n                \"rotate\": -45,\n                \"margin\": 8,\n                \"fontSize\": 12\n            },\n            \"inverse\": false,\n            \"offset\": 0,\n            \"splitNumber\": 5,\n            \"minInterval\": 0,\n            \"splitLine\": {\n                \"show\": false,\n                \"lineStyle\": {\n                    \"width\": 1,\n                    \"opacity\": 1,\n                    \"curveness\": 0,\n                    \"type\": \"solid\"\n                }\n            },\n            \"data\": [\n                \"\\u6000\\u67d4\\u533a  \",\n                \"\\u5ef6\\u5e86\\u533a  \",\n                \"\\u660c\\u5e73\\u533a\",\n                \"\\u5e73\\u8c37\\u533a  \",\n                \"\\u5bc6\\u4e91\\u533a  \",\n                \"\\u95e8\\u5934\\u6c9f\\u533a  \",\n                \"\\u4e1c\\u57ce\\u533a\",\n                \"\\u623f\\u5c71\\u533a\",\n                \"\\u987a\\u4e49\\u533a  \",\n                \"\\u897f\\u57ce\\u533a\",\n                \"\\u5927\\u5174\\u533a  \",\n                \"\\u671d\\u9633\\u533a  \",\n                \"\\u6d77\\u6dc0\\u533a\",\n                \"\\u901a\\u5dde\\u533a  \",\n                \"\\u77f3\\u666f\\u5c71\\u533a\",\n                \"\\u4e30\\u53f0\\u533a  \"\n            ]\n        }\n    ],\n    \"yAxis\": [\n        {\n            \"show\": true,\n            \"scale\": false,\n            \"nameLocation\": \"end\",\n            \"nameGap\": 15,\n            \"gridIndex\": 0,\n            \"inverse\": false,\n            \"offset\": 0,\n            \"splitNumber\": 5,\n            \"minInterval\": 0,\n            \"splitLine\": {\n                \"show\": false,\n                \"lineStyle\": {\n                    \"width\": 1,\n                    \"opacity\": 1,\n                    \"curveness\": 0,\n                    \"type\": \"solid\"\n                }\n            }\n        }\n    ],\n    \"title\": [\n        {\n            \"text\": \"Price-neighbourhood\"\n        }\n    ]\n};\n                chart_b530d02eeafd49a3a3d5c6ea95ddb17f.setOption(option_b530d02eeafd49a3a3d5c6ea95ddb17f);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：从城区房价分布来看，怀柔区的价格在均值、中位数、最小值等量值上均高于其他城区，而丰台区则价格较低。","metadata":{}},{"cell_type":"code","source":"df_roomtpye_price=data.groupby(\"room_type\")[\"price\"].mean().sort_values(ascending=False)\ndf_roomtpye_price2=data.groupby(\"room_type\")[\"price\"].median().sort_values(ascending=False)\ndf_roomtpye_price3=data.groupby(\"room_type\")[\"price\"].min().sort_values(ascending=False)\nbar = (\n        Bar()\n        .add_xaxis(df_roomtpye_price.index.tolist())\n        .add_yaxis(\"价格均值\", df_roomtpye_price.values.tolist())\n        .add_yaxis(\"价格中位数\", df_roomtpye_price2.values.tolist())\n#         .add_yaxis(\"价格最小值\", df_roomtpye_price3.values.tolist())\n        .set_global_opts(title_opts=opts.TitleOpts(title=\"Price-roomtype\"),\n                         xaxis_opts=opts.AxisOpts(name=\"\",axislabel_opts=opts.LabelOpts(rotate=0,font_size =12)))\n        .set_series_opts(\n            label_opts=opts.LabelOpts(is_show=False),\n            markpoint_opts=opts.MarkPointOpts(\n                data=[\n                    opts.MarkPointItem(type_=\"max\", name=\"最大值\"),\n                    opts.MarkPointItem(type_=\"min\", name=\"最小值\"),\n                    opts.MarkPointItem(type_=\"average\", name=\"平均值\"),\n                ]\n            ),\n        )\n    )\nbar.render_notebook()\n","metadata":{},"execution_count":98,"outputs":[{"execution_count":98,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb424264c50>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n        }\n    });\n</script>\n\n        <div id=\"08d7b068c3e042f2b1560f459654b8b0\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts'], function(echarts) {\n                var chart_08d7b068c3e042f2b1560f459654b8b0 = echarts.init(\n                    document.getElementById('08d7b068c3e042f2b1560f459654b8b0'), 'white', {renderer: 'canvas'});\n                var option_08d7b068c3e042f2b1560f459654b8b0 = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"bar\",\n            \"name\": \"\\u4ef7\\u683c\\u5747\\u503c\",\n            \"data\": [\n                746.4791506930109,\n                430.681236023582,\n                299.1928872814949\n            ],\n            \"barCategoryGap\": \"20%\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"markPoint\": {\n                \"label\": {\n                    \"show\": true,\n                    \"position\": \"inside\",\n                    \"color\": \"#fff\",\n                    \"margin\": 8\n                },\n                \"data\": [\n                    {\n                        \"name\": \"\\u6700\\u5927\\u503c\",\n                        \"type\": \"max\"\n                    },\n                    {\n                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n                        \"type\": \"min\"\n                    },\n                    {\n                        \"name\": \"\\u5e73\\u5747\\u503c\",\n                        \"type\": \"average\"\n                    }\n                ]\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        },\n        {\n            \"type\": \"bar\",\n            \"name\": \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\",\n            \"data\": [\n                470,\n                248,\n                107\n            ],\n            \"barCategoryGap\": \"20%\",\n            \"label\": {\n                \"show\": false,\n                \"position\": \"top\",\n                \"margin\": 8\n            },\n            \"markPoint\": {\n                \"label\": {\n                    \"show\": true,\n                    \"position\": \"inside\",\n                    \"color\": \"#fff\",\n                    \"margin\": 8\n                },\n                \"data\": [\n                    {\n                        \"name\": \"\\u6700\\u5927\\u503c\",\n                        \"type\": \"max\"\n                    },\n                    {\n                        \"name\": \"\\u6700\\u5c0f\\u503c\",\n                        \"type\": \"min\"\n                    },\n                    {\n                        \"name\": \"\\u5e73\\u5747\\u503c\",\n                        \"type\": \"average\"\n                    }\n                ]\n            },\n            \"rippleEffect\": {\n                \"show\": true,\n                \"brushType\": \"stroke\",\n                \"scale\": 2.5,\n                \"period\": 4\n            }\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [\n                \"\\u4ef7\\u683c\\u5747\\u503c\",\n                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\"\n            ],\n            \"selected\": {\n                \"\\u4ef7\\u683c\\u5747\\u503c\": true,\n                \"\\u4ef7\\u683c\\u4e2d\\u4f4d\\u6570\": true\n            },\n            \"show\": true\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"xAxis\": [\n        {\n            \"show\": true,\n            \"scale\": false,\n            \"nameLocation\": \"end\",\n            \"nameGap\": 15,\n            \"gridIndex\": 0,\n            \"axisLabel\": {\n                \"show\": true,\n                \"position\": \"top\",\n                \"rotate\": 0,\n                \"margin\": 8,\n                \"fontSize\": 12\n            },\n            \"inverse\": false,\n            \"offset\": 0,\n            \"splitNumber\": 5,\n            \"minInterval\": 0,\n            \"splitLine\": {\n                \"show\": false,\n                \"lineStyle\": {\n                    \"width\": 1,\n                    \"opacity\": 1,\n                    \"curveness\": 0,\n                    \"type\": \"solid\"\n                }\n            },\n            \"data\": [\n                \"Entire home/apt\",\n                \"Private room\",\n                \"Shared room\"\n            ]\n        }\n    ],\n    \"yAxis\": [\n        {\n            \"show\": true,\n            \"scale\": false,\n            \"nameLocation\": \"end\",\n            \"nameGap\": 15,\n            \"gridIndex\": 0,\n            \"inverse\": false,\n            \"offset\": 0,\n            \"splitNumber\": 5,\n            \"minInterval\": 0,\n            \"splitLine\": {\n                \"show\": false,\n                \"lineStyle\": {\n                    \"width\": 1,\n                    \"opacity\": 1,\n                    \"curveness\": 0,\n                    \"type\": \"solid\"\n                }\n            }\n        }\n    ],\n    \"title\": [\n        {\n            \"text\": \"Price-roomtype\"\n        }\n    ]\n};\n                chart_08d7b068c3e042f2b1560f459654b8b0.setOption(option_08d7b068c3e042f2b1560f459654b8b0);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"code","source":"df_roomtpye_price.describe()","metadata":{},"execution_count":99,"outputs":[{"execution_count":99,"output_type":"execute_result","data":{"text/plain":"count      3.000000\nmean     492.117758\nstd      229.884939\nmin      299.192887\n25%      364.937062\n50%      430.681236\n75%      588.580193\nmax      746.479151\nName: price, dtype: float64"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：整租、独立房间出租、房间合租的价格一次递减，且差价在40%、30%，整租的利润空间最大。","metadata":{}},{"cell_type":"markdown","source":"##时间序列分析","metadata":{}},{"cell_type":"code","source":"data[\"last_review\"]=pd.to_datetime(data[\"last_review\"],format=\"%Y-%m-%d\")","metadata":{},"execution_count":100,"outputs":[]},{"cell_type":"code","source":"data.head(5)","metadata":{},"execution_count":101,"outputs":[{"execution_count":101,"output_type":"execute_result","data":{"text/plain":"       id                                         name  host_id  \\\n0   44054         Modern and Comfortable Living in CBD   192875   \n1  100213  The Great Wall Box Deluxe Suite A团园长城小院东院套房   527062   \n2  128496          Heart of Beijing: House with View 2   467520   \n3  161902             cozy studio in center of Beijing   707535   \n4  162144            nice studio near subway, sleep 4    707535   \n\n         host_name neighbourhood  latitude  longitude        room_type  price  \\\n0  East Apartments         朝阳区    39.89503  116.45163  Entire home/apt    792   \n1              Joe         密云区    40.68434  117.17231     Private room   1201   \n2            Cindy           东城区  39.93213  116.42200  Entire home/apt    389   \n3           Robert           东城区  39.93357  116.43577  Entire home/apt    376   \n4           Robert         朝阳区    39.93668  116.43798  Entire home/apt    537   \n\n   minimum_nights  number_of_reviews last_review  reviews_per_month  \\\n0               1                 89  2019-03-04               0.85   \n1               1                  2  2017-10-08               0.10   \n2               3                259  2019-02-05               2.70   \n3               1                 26  2016-12-03               0.28   \n4               1                 37  2018-08-01               0.40   \n\n   calculated_host_listings_count  availability_365  \n0                               9               341  \n1                               4                 0  \n2                               1                93  \n3                               5               290  \n4                               5               352  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>name</th>\n      <th>host_id</th>\n      <th>host_name</th>\n      <th>neighbourhood</th>\n      <th>latitude</th>\n      <th>longitude</th>\n      <th>room_type</th>\n      <th>price</th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>last_review</th>\n      <th>reviews_per_month</th>\n      <th>calculated_host_listings_count</th>\n      <th>availability_365</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>44054</td>\n      <td>Modern and Comfortable Living in CBD</td>\n      <td>192875</td>\n      <td>East Apartments</td>\n      <td>朝阳区</td>\n      <td>39.89503</td>\n      <td>116.45163</td>\n      <td>Entire home/apt</td>\n      <td>792</td>\n      <td>1</td>\n      <td>89</td>\n      <td>2019-03-04</td>\n      <td>0.85</td>\n      <td>9</td>\n      <td>341</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>100213</td>\n      <td>The Great Wall Box Deluxe Suite A团园长城小院东院套房</td>\n      <td>527062</td>\n      <td>Joe</td>\n      <td>密云区</td>\n      <td>40.68434</td>\n      <td>117.17231</td>\n      <td>Private room</td>\n      <td>1201</td>\n      <td>1</td>\n      <td>2</td>\n      <td>2017-10-08</td>\n      <td>0.10</td>\n      <td>4</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>128496</td>\n      <td>Heart of Beijing: House with View 2</td>\n      <td>467520</td>\n      <td>Cindy</td>\n      <td>东城区</td>\n      <td>39.93213</td>\n      <td>116.42200</td>\n      <td>Entire home/apt</td>\n      <td>389</td>\n      <td>3</td>\n      <td>259</td>\n      <td>2019-02-05</td>\n      <td>2.70</td>\n      <td>1</td>\n      <td>93</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>161902</td>\n      <td>cozy studio in center of Beijing</td>\n      <td>707535</td>\n      <td>Robert</td>\n      <td>东城区</td>\n      <td>39.93357</td>\n      <td>116.43577</td>\n      <td>Entire home/apt</td>\n      <td>376</td>\n      <td>1</td>\n      <td>26</td>\n      <td>2016-12-03</td>\n      <td>0.28</td>\n      <td>5</td>\n      <td>290</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>162144</td>\n      <td>nice studio near subway, sleep 4</td>\n      <td>707535</td>\n      <td>Robert</td>\n      <td>朝阳区</td>\n      <td>39.93668</td>\n      <td>116.43798</td>\n      <td>Entire home/apt</td>\n      <td>537</td>\n      <td>1</td>\n      <td>37</td>\n      <td>2018-08-01</td>\n      <td>0.40</td>\n      <td>5</td>\n      <td>352</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"data[\"year\"]=data[\"last_review\"].apply(lambda x:x.year)\ndata[\"month\"]=data[\"last_review\"].apply(lambda x:x.month)\ndata[\"day\"]=data[\"last_review\"].apply(lambda x:x.day)","metadata":{},"execution_count":102,"outputs":[]},{"cell_type":"code","source":"data.head(5)","metadata":{},"execution_count":103,"outputs":[{"execution_count":103,"output_type":"execute_result","data":{"text/plain":"       id                                         name  host_id  \\\n0   44054         Modern and Comfortable Living in CBD   192875   \n1  100213  The Great Wall Box Deluxe Suite A团园长城小院东院套房   527062   \n2  128496          Heart of Beijing: House with View 2   467520   \n3  161902             cozy studio in center of Beijing   707535   \n4  162144            nice studio near subway, sleep 4    707535   \n\n         host_name neighbourhood  latitude  longitude        room_type  price  \\\n0  East Apartments         朝阳区    39.89503  116.45163  Entire home/apt    792   \n1              Joe         密云区    40.68434  117.17231     Private room   1201   \n2            Cindy           东城区  39.93213  116.42200  Entire home/apt    389   \n3           Robert           东城区  39.93357  116.43577  Entire home/apt    376   \n4           Robert         朝阳区    39.93668  116.43798  Entire home/apt    537   \n\n   minimum_nights  number_of_reviews last_review  reviews_per_month  \\\n0               1                 89  2019-03-04               0.85   \n1               1                  2  2017-10-08               0.10   \n2               3                259  2019-02-05               2.70   \n3               1                 26  2016-12-03               0.28   \n4               1                 37  2018-08-01               0.40   \n\n   calculated_host_listings_count  availability_365  year  month  day  \n0                               9               341  2019      3    4  \n1                               4                 0  2017     10    8  \n2                               1                93  2019      2    5  \n3                               5               290  2016     12    3  \n4                               5               352  2018      8    1  ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>id</th>\n      <th>name</th>\n      <th>host_id</th>\n      <th>host_name</th>\n      <th>neighbourhood</th>\n      <th>latitude</th>\n      <th>longitude</th>\n      <th>room_type</th>\n      <th>price</th>\n      <th>minimum_nights</th>\n      <th>number_of_reviews</th>\n      <th>last_review</th>\n      <th>reviews_per_month</th>\n      <th>calculated_host_listings_count</th>\n      <th>availability_365</th>\n      <th>year</th>\n      <th>month</th>\n      <th>day</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>44054</td>\n      <td>Modern and Comfortable Living in CBD</td>\n      <td>192875</td>\n      <td>East Apartments</td>\n      <td>朝阳区</td>\n      <td>39.89503</td>\n      <td>116.45163</td>\n      <td>Entire home/apt</td>\n      <td>792</td>\n      <td>1</td>\n      <td>89</td>\n      <td>2019-03-04</td>\n      <td>0.85</td>\n      <td>9</td>\n      <td>341</td>\n      <td>2019</td>\n      <td>3</td>\n      <td>4</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>100213</td>\n      <td>The Great Wall Box Deluxe Suite A团园长城小院东院套房</td>\n      <td>527062</td>\n      <td>Joe</td>\n      <td>密云区</td>\n      <td>40.68434</td>\n      <td>117.17231</td>\n      <td>Private room</td>\n      <td>1201</td>\n      <td>1</td>\n      <td>2</td>\n      <td>2017-10-08</td>\n      <td>0.10</td>\n      <td>4</td>\n      <td>0</td>\n      <td>2017</td>\n      <td>10</td>\n      <td>8</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>128496</td>\n      <td>Heart of Beijing: House with View 2</td>\n      <td>467520</td>\n      <td>Cindy</td>\n      <td>东城区</td>\n      <td>39.93213</td>\n      <td>116.42200</td>\n      <td>Entire home/apt</td>\n      <td>389</td>\n      <td>3</td>\n      <td>259</td>\n      <td>2019-02-05</td>\n      <td>2.70</td>\n      <td>1</td>\n      <td>93</td>\n      <td>2019</td>\n      <td>2</td>\n      <td>5</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>161902</td>\n      <td>cozy studio in center of Beijing</td>\n      <td>707535</td>\n      <td>Robert</td>\n      <td>东城区</td>\n      <td>39.93357</td>\n      <td>116.43577</td>\n      <td>Entire home/apt</td>\n      <td>376</td>\n      <td>1</td>\n      <td>26</td>\n      <td>2016-12-03</td>\n      <td>0.28</td>\n      <td>5</td>\n      <td>290</td>\n      <td>2016</td>\n      <td>12</td>\n      <td>3</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>162144</td>\n      <td>nice studio near subway, sleep 4</td>\n      <td>707535</td>\n      <td>Robert</td>\n      <td>朝阳区</td>\n      <td>39.93668</td>\n      <td>116.43798</td>\n      <td>Entire home/apt</td>\n      <td>537</td>\n      <td>1</td>\n      <td>37</td>\n      <td>2018-08-01</td>\n      <td>0.40</td>\n      <td>5</td>\n      <td>352</td>\n      <td>2018</td>\n      <td>8</td>\n      <td>1</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"df_year=data[\"year\"].value_counts()","metadata":{},"execution_count":104,"outputs":[]},{"cell_type":"code","source":"df_month=data[\"month\"].value_counts().to_frame().reset_index().sort_values(by=\"index\")","metadata":{},"execution_count":105,"outputs":[]},{"cell_type":"code","source":"plt.plot(df_year.index.tolist(),df_year.values.tolist())","metadata":{},"execution_count":106,"outputs":[{"execution_count":106,"output_type":"execute_result","data":{"text/plain":"[<matplotlib.lines.Line2D at 0x7fb411ac2978>]"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"cell_type":"code","source":"plt.plot(df_month[\"index\"],df_month[\"month\"])","metadata":{},"execution_count":107,"outputs":[{"execution_count":107,"output_type":"execute_result","data":{"text/plain":"[<matplotlib.lines.Line2D at 0x7fb4102249b0>]"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：短租的信息从2016年开始增长，18-19年猛增；而从月份来看3-4月份是旺季，而5月之后属于淡季。","metadata":{}},{"cell_type":"markdown","source":"##评论文本分析","metadata":{}},{"cell_type":"code","source":"df=pd.read_csv(\"datalab/44544/reviews_detail.csv\")","metadata":{"trusted":true},"execution_count":109,"outputs":[]},{"cell_type":"code","source":"df.info()","metadata":{"trusted":true},"execution_count":110,"outputs":[{"name":"stdout","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 202099 entries, 0 to 202098\nData columns (total 6 columns):\nlisting_id       202099 non-null int64\nid               202099 non-null int64\ndate             202099 non-null object\nreviewer_id      202099 non-null int64\nreviewer_name    202093 non-null object\ncomments         201983 non-null object\ndtypes: int64(3), object(3)\nmemory usage: 9.3+ MB\n","output_type":"stream"}]},{"cell_type":"code","source":" df[\"English\"]=df[\"comments\"].apply(lambda x:''.join(re.findall(r'[  A-Za-z ]', str(x))))","metadata":{"trusted":true},"execution_count":111,"outputs":[]},{"cell_type":"code","source":"df[\"Chinese\"]=df[\"comments\"].apply(lambda x:re.sub(\"[A-Za-z0-9\\!\\%\\?()./[\\]\\- \t:;,\\。 ' ...r'\\n\\r\\n\\r\\n' \t]\", \"\",str(x))) #滤除非汉字部分","metadata":{"trusted":true},"execution_count":114,"outputs":[]},{"cell_type":"code","source":"df.tail()","metadata":{"trusted":true},"execution_count":115,"outputs":[{"execution_count":115,"output_type":"execute_result","data":{"text/plain":"        listing_id         id        date  reviewer_id reviewer_name  \\\n202094    33889408  438178936  2019-04-16    255996319            小倩   \n202095    33890728  438182720  2019-04-16    255995373            志辉   \n202096    33891613  438182693  2019-04-16    255994654            天佑   \n202097    33892088  438119657  2019-04-16    255993753            志强   \n202098    33925874  438572523  2019-04-17    256375057             玲   \n\n                                                 comments  \\\n202094  很不错的,去之前提供的位置信息特别详细,房东有心了,位置很便利,设施也很齐全,非常好的一次住...   \n202095       非常棒的房子,住的很开心｡ 地址位置很方便, 房间布置和装修都很奈斯,沙发床特别舒服哈哈   \n202096                房间布置明亮温暖而别有风格,指引周到而迅速,房间内设施齐全､空间宽敞!   \n202097      各方面这个价位性价比是非常之高了,房东人也很好,交通便利,我个人是很满意的,有机会还会来｡   \n202098  The host canceled this reservation 13 days bef...   \n\n                                                  English  \\\n202094                                                      \n202095                                                      \n202096                                                      \n202097                                                      \n202098  The host canceled this reservation  days befor...   \n\n                                              Chinese  \n202094  很不错的去之前提供的位置信息特别详细房东有心了位置很便利设施也很齐全非常好的一次住宿体验~  \n202095        非常棒的房子住的很开心｡地址位置很方便房间布置和装修都很奈斯沙发床特别舒服哈哈  \n202096               房间布置明亮温暖而别有风格指引周到而迅速房间内设施齐全､空间宽敞  \n202097      各方面这个价位性价比是非常之高了房东人也很好交通便利我个人是很满意的有机会还会来｡  \n202098                                                 ","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>listing_id</th>\n      <th>id</th>\n      <th>date</th>\n      <th>reviewer_id</th>\n      <th>reviewer_name</th>\n      <th>comments</th>\n      <th>English</th>\n      <th>Chinese</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>202094</th>\n      <td>33889408</td>\n      <td>438178936</td>\n      <td>2019-04-16</td>\n      <td>255996319</td>\n      <td>小倩</td>\n      <td>很不错的,去之前提供的位置信息特别详细,房东有心了,位置很便利,设施也很齐全,非常好的一次住...</td>\n      <td></td>\n      <td>很不错的去之前提供的位置信息特别详细房东有心了位置很便利设施也很齐全非常好的一次住宿体验~</td>\n    </tr>\n    <tr>\n      <th>202095</th>\n      <td>33890728</td>\n      <td>438182720</td>\n      <td>2019-04-16</td>\n      <td>255995373</td>\n      <td>志辉</td>\n      <td>非常棒的房子,住的很开心｡ 地址位置很方便, 房间布置和装修都很奈斯,沙发床特别舒服哈哈</td>\n      <td></td>\n      <td>非常棒的房子住的很开心｡地址位置很方便房间布置和装修都很奈斯沙发床特别舒服哈哈</td>\n    </tr>\n    <tr>\n      <th>202096</th>\n      <td>33891613</td>\n      <td>438182693</td>\n      <td>2019-04-16</td>\n      <td>255994654</td>\n      <td>天佑</td>\n      <td>房间布置明亮温暖而别有风格,指引周到而迅速,房间内设施齐全､空间宽敞!</td>\n      <td></td>\n      <td>房间布置明亮温暖而别有风格指引周到而迅速房间内设施齐全､空间宽敞</td>\n    </tr>\n    <tr>\n      <th>202097</th>\n      <td>33892088</td>\n      <td>438119657</td>\n      <td>2019-04-16</td>\n      <td>255993753</td>\n      <td>志强</td>\n      <td>各方面这个价位性价比是非常之高了,房东人也很好,交通便利,我个人是很满意的,有机会还会来｡</td>\n      <td></td>\n      <td>各方面这个价位性价比是非常之高了房东人也很好交通便利我个人是很满意的有机会还会来｡</td>\n    </tr>\n    <tr>\n      <th>202098</th>\n      <td>33925874</td>\n      <td>438572523</td>\n      <td>2019-04-17</td>\n      <td>256375057</td>\n      <td>玲</td>\n      <td>The host canceled this reservation 13 days bef...</td>\n      <td>The host canceled this reservation  days befor...</td>\n      <td></td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"cell_type":"code","source":"df[\"Chinese\"].to_csv(\"Chinese_comments.csv\",index=False,header=False)\ndf[\"English\"].to_csv(\"English_comments.csv\",index=False,header=False)","metadata":{"trusted":true},"execution_count":116,"outputs":[]},{"cell_type":"code","source":"import jieba\nexcludes = {\"我们\",\"特别\",\"可以\",\"入住\",\"非常\",\"房东\",\"房间\",\"真的\",\"但是\",\"还有\",\"没有\",\"问题\",\"一个\"}\ntxt = open(\"Chinese_comments.csv\", \"r\", encoding='utf-8').read()\nwords  = jieba.lcut(txt)\ncounts = {}\nfor word in words:\n    if len(word) == 1:  #排除单个字符的分词结果\n        continue\n    else:\n        counts[word] = counts.get(word,0) + 1\nfor word in excludes:\n    del(counts[word])\nitems = list(counts.items())\nitems.sort(key=lambda x:x[1], reverse=True) \n# for i in range(15):\n#     word, count = items[i]\n#     print (\"{0:<10}{1:>5}\".format(word, count))\n","metadata":{"trusted":true},"execution_count":117,"outputs":[{"name":"stderr","text":"Building prefix dict from the default dictionary ...\nDumping model to file cache /tmp/jieba.cache\nLoading model cost 0.926 seconds.\nPrefix dict has been built succesfully.\n","output_type":"stream"}]},{"cell_type":"code","source":"from pyecharts import options as opts\nfrom pyecharts.charts import Page, WordCloud\nfrom pyecharts.globals import SymbolType\nword = WordCloud()\nword.add('',items[:50],word_size_range=[20, 100],shape=SymbolType.DIAMOND)\nword.set_global_opts(title_opts=opts.TitleOpts(title=\"comments WordCloud\"))\nword.render_notebook()","metadata":{"trusted":true},"execution_count":118,"outputs":[{"execution_count":118,"output_type":"execute_result","data":{"text/plain":"<pyecharts.render.display.HTML at 0x7fb4102c0a58>","text/html":"\n<script>\n    require.config({\n        paths: {\n            'echarts':'https://assets.pyecharts.org/assets/echarts.min', 'echarts-wordcloud':'https://assets.pyecharts.org/assets/echarts-wordcloud.min'\n        }\n    });\n</script>\n\n        <div id=\"b48c8ad78b0346feb7da2ba52f7c7a49\" style=\"width:900px; height:500px;\"></div>\n\n<script>\n        require(['echarts', 'echarts-wordcloud'], function(echarts) {\n                var chart_b48c8ad78b0346feb7da2ba52f7c7a49 = echarts.init(\n                    document.getElementById('b48c8ad78b0346feb7da2ba52f7c7a49'), 'white', {renderer: 'canvas'});\n                var option_b48c8ad78b0346feb7da2ba52f7c7a49 = {\n    \"animation\": true,\n    \"animationThreshold\": 2000,\n    \"animationDuration\": 1000,\n    \"animationEasing\": \"cubicOut\",\n    \"animationDelay\": 0,\n    \"animationDurationUpdate\": 300,\n    \"animationEasingUpdate\": \"cubicOut\",\n    \"animationDelayUpdate\": 0,\n    \"color\": [\n        \"#c23531\",\n        \"#2f4554\",\n        \"#61a0a8\",\n        \"#d48265\",\n        \"#749f83\",\n        \"#ca8622\",\n        \"#bda29a\",\n        \"#6e7074\",\n        \"#546570\",\n        \"#c4ccd3\",\n        \"#f05b72\",\n        \"#ef5b9c\",\n        \"#f47920\",\n        \"#905a3d\",\n        \"#fab27b\",\n        \"#2a5caa\",\n        \"#444693\",\n        \"#726930\",\n        \"#b2d235\",\n        \"#6d8346\",\n        \"#ac6767\",\n        \"#1d953f\",\n        \"#6950a1\",\n        \"#918597\"\n    ],\n    \"series\": [\n        {\n            \"type\": \"wordCloud\",\n            \"shape\": \"diamond\",\n            \"rotationRange\": [\n                0,\n                0\n            ],\n            \"rotationStep\": 45,\n            \"girdSize\": 20,\n            \"sizeRange\": [\n                20,\n                100\n            ],\n            \"data\": [\n                {\n                    \"name\": \"\\u65b9\\u4fbf\",\n                    \"value\": 52044,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(29,141,113)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5e72\\u51c0\",\n                    \"value\": 43828,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(153,112,127)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u623f\\u5b50\",\n                    \"value\": 43115,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(36,89,116)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4e0d\\u9519\",\n                    \"value\": 29395,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(16,39,46)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4f4d\\u7f6e\",\n                    \"value\": 29074,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(113,118,156)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5317\\u4eac\",\n                    \"value\": 26043,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(143,32,83)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4f53\\u9a8c\",\n                    \"value\": 24307,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(89,136,57)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u70ed\\u60c5\",\n                    \"value\": 23240,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(67,104,65)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5c31\\u662f\",\n                    \"value\": 21275,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(154,120,76)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5730\\u94c1\\u7ad9\",\n                    \"value\": 19674,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(77,56,23)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8212\\u670d\",\n                    \"value\": 19643,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(64,97,50)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4ea4\\u901a\",\n                    \"value\": 19582,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(0,116,53)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8d85\\u7ea7\",\n                    \"value\": 16882,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(46,128,148)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u611f\\u89c9\",\n                    \"value\": 16580,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(150,34,55)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4e0b\\u6b21\",\n                    \"value\": 16038,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(15,9,102)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5730\\u7406\\u4f4d\\u7f6e\",\n                    \"value\": 16023,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(108,53,150)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6e29\\u99a8\",\n                    \"value\": 15324,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(96,39,50)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5f88\\u591a\",\n                    \"value\": 15237,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(41,72,159)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u63a8\\u8350\",\n                    \"value\": 15190,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(125,130,29)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4fbf\\u5229\",\n                    \"value\": 14691,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(21,97,155)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5c0f\\u533a\",\n                    \"value\": 14685,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(82,152,110)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6bd4\\u8f83\",\n                    \"value\": 14550,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(92,75,128)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6574\\u6d01\",\n                    \"value\": 14395,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(37,101,108)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u559c\\u6b22\",\n                    \"value\": 14234,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(143,159,116)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8bbe\\u65bd\",\n                    \"value\": 14205,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(110,137,35)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u9f50\\u5168\",\n                    \"value\": 13452,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(29,2,151)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5f88\\u68d2\",\n                    \"value\": 13231,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(90,123,94)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6027\\u4ef7\\u6bd4\",\n                    \"value\": 13087,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(46,34,59)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8212\\u9002\",\n                    \"value\": 12768,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(49,89,101)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u88c5\\u4fee\",\n                    \"value\": 12662,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(133,104,51)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5730\\u94c1\",\n                    \"value\": 12428,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(71,56,60)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u4e00\\u6b21\",\n                    \"value\": 12018,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(129,60,5)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5b89\\u9759\",\n                    \"value\": 11877,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(22,94,90)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u9644\\u8fd1\",\n                    \"value\": 11862,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(153,29,107)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8fd8\\u662f\",\n                    \"value\": 11292,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(33,92,98)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5c0f\\u59d0\\u59d0\",\n                    \"value\": 11260,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(142,157,85)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8fd9\\u91cc\",\n                    \"value\": 11217,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(33,107,127)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u623f\\u4e3b\",\n                    \"value\": 10838,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(16,7,57)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5730\\u65b9\",\n                    \"value\": 10416,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(109,135,33)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6ee1\\u610f\",\n                    \"value\": 10294,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(47,125,28)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u665a\\u4e0a\",\n                    \"value\": 10107,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(113,1,158)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u8d34\\u5fc3\",\n                    \"value\": 9758,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(44,53,23)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6c11\\u5bbf\",\n                    \"value\": 9740,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(39,138,48)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u6709\\u70b9\",\n                    \"value\": 9640,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(43,131,58)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u73af\\u5883\",\n                    \"value\": 9469,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(5,121,79)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u56de\\u590d\",\n                    \"value\": 9361,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(113,57,119)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u800c\\u4e14\",\n                    \"value\": 9320,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(10,16,18)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u53ca\\u65f6\",\n                    \"value\": 8982,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(103,33,11)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u59d0\\u59d0\",\n                    \"value\": 8814,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(51,158,61)\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"\\u5f88\\u8fd1\",\n                    \"value\": 8522,\n                    \"textStyle\": {\n                        \"normal\": {\n                            \"color\": \"rgb(154,121,46)\"\n                        }\n                    }\n                }\n            ]\n        }\n    ],\n    \"legend\": [\n        {\n            \"data\": [],\n            \"selected\": {},\n            \"show\": true\n        }\n    ],\n    \"tooltip\": {\n        \"show\": true,\n        \"trigger\": \"item\",\n        \"triggerOn\": \"mousemove|click\",\n        \"axisPointer\": {\n            \"type\": \"line\"\n        },\n        \"textStyle\": {\n            \"fontSize\": 14\n        },\n        \"borderWidth\": 0\n    },\n    \"title\": [\n        {\n            \"text\": \"comments WordCloud\"\n        }\n    ]\n};\n                chart_b48c8ad78b0346feb7da2ba52f7c7a49.setOption(option_b48c8ad78b0346feb7da2ba52f7c7a49);\n        });\n    </script>\n"},"metadata":{}}]},{"cell_type":"markdown","source":"分析：租客关注点偏向一下四项 房主：'房东','热情' 房子：'房间','设施','干净','整洁','装修' 位置：'地理位置','附近','地铁站','交通' 价格：'性价比'","metadata":{}},{"cell_type":"markdown","source":"##特征相关性","metadata":{}},{"cell_type":"code","source":"data=data[[\"id\",\"host_id\",\"neighbourhood\", \"room_type\", \"price\" ,\"minimum_nights\", \"number_of_reviews\" ,\"last_review\", \"reviews_per_month\" ,\"availability_365\"]]\ncolormap = plt.cm.RdBu\nfig3,ax1=plt.subplots(1,1)\nplt.title('Pearson Correlation of Features', y=1.05, size=14)\nsns.heatmap(data.corr(),linewidths=0.1,vmax=1.0, square=True,\n            cmap=colormap, linecolor='white', annot=True,annot_kws={'size':8,'color':'black'},ax=ax1)\nax1.tick_params(axis='y',labelsize=12)\nax1.tick_params(axis='x',labelsize=12)\nplt.show()","metadata":{"trusted":true},"execution_count":119,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 2 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAaUAAAGACAYAAAANs30rAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3XdUFNfbwPHvwrL0ZqEJ2HsDBRsoimJBUWM3lhh7jT3WxBqNGlvUGLEl8TUxFsSCxK6IJiiKJXZREJViodcF9v0DXFhZdFWM4O9+ztlz2Htn57lzd5ln78zdGYlCoVAgCIIgCMWA1sdugCAIgiC8JJKSIAiCUGyIpCQIgiAUGyIpCYIgCMWGSEqCIAhCsSGSkiAIglBsiKQkCMXMmjVr6NSp03uvx8fHB0dHxyJo0fsLDQ2ld+/e1K1bF3d394/dHKEYE0lJAGD69OlUr16d6tWrU7t2bVq3bs2SJUtISUn52E37oG7evMmECRNwcXGhbt26eHh4MH36dG7fvv2xm/ZWqlevzl9//aVS5unpybFjxz5Si1StXr0aPT09/P392b17t9pl1qxZo/wM5n8U5TYUp0QtqCf92A0Qio9mzZqxdOlSMjMzCQ4OZvbs2aSkpDBv3rwPFjMjIwOZTPbB1v86J0+eZNy4ccrttre3Jy4ujiNHjrB8+XK8vb3fab2FbdN/va16enro6en9Z/FeJzw8nNatW2Nra/va5SpWrMi2bdtUykxNTT9k097Zx/zsfsrESElQkslklC1bFmtra7y8vPDy8uL48ePK+nv37jF8+HAcHR1p2rQpkyZN4unTp8r6q1evMnjwYBo3bkyDBg3o27cvISEhKjGqV6/O9u3bGTt2LA4ODqxcuRK5XM7ChQtxdXWlTp06uLm58cMPPyhfEx8fz7Rp03B2dqZevXoMGjSIu3fvKutffvv9+++/6dSpEw4ODgwYMICIiIhCtzU1NZUZM2bg6uqKt7c3Li4u2NnZUbduXSZPnqwS/8KFC/Ts2ZO6devSrFkzFi1aREZGhrJ+wIABzJkzhyVLltCkSRP69u1b6LZq0o+velO/vjwcNn78eKpXr658rm5UsGPHDjw8PKhTpw4eHh7s3LmzwPvz559/8tVXX+Hg4EDr1q3Zt29foW0DyM7OZt26dbi5uVGnTh28vLxURjfVq1fn1q1brFu3jurVq7NmzZpC1yWVSilbtqzKI/+Of8+ePXh6elK3bl3atWvHL7/8QnZ2trJ+69ateHl54eDgQPPmzZk1axYJCQkABAUFMWPGDFJSUpSjsJdtcXd3Z/PmzSptGTBgAPPnz1fp5zVr1jBjxgycnJyYMmUKANHR0UycOBFnZ2ecnZ0ZPnw4YWFhytdFRkYyatQoGjVqRP369Wnfvj1+fn6v7dP/ZSIpCYXS09NDLpcDEBMTQ79+/ahatSq7d+9m69atpKSkMGrUKOVOITk5mc6dO/P777+za9cuatasyfDhw3nx4oXKeteuXYubmxsHDhzg888/Z9u2bRw9epSVK1dy5MgRVq5cScWKFZXLT58+nStXrvDTTz+xa9cu9PT0GDp0KGlpacplMjIy2LBhA4sWLWLHjh0kJiYyd+7cQrctMDCQ2NhYhg8frrbexMQEyNnhDBs2jJo1a+Lr68t3332Hn58fK1asUFl+//79KBQKtm/fztKlSwvdVk368VVv6teXh8MWLlxIYGBgoYfHjh49yoIFC/jiiy84cOAAAwcOZN68eZw4cUJluXXr1imTkaenJ7NmzeLx48eF9uVvv/3G5s2bmTJlCgcOHKBNmzaMGzeOmzdvKvu6YsWKDB48mMDAQAYPHlzoul5n586drFy5kq+++opDhw4xbdo0Nm7cyO+//65cRiKRMHPmTA4ePMjy5cu5evUqCxYsAMDR0ZGZM2eir69PYGDgO7Vl69atVKpUiT179jBp0iRSU1MZOHAgurq6bNu2jR07dlC2bFm+/PJLUlNTAZg3bx5paWn89ttvHDx4kJkzZ2JsbPxOffA/QSEICoVi2rRpiuHDhyufX7lyRdGoUSPF+PHjFQqFQrFq1SrFwIEDVV4TFxenqFatmuLKlStq15mdna1wcXFR+Pr6KsuqVaummD9/vspyCxYsUAwcOFCRnZ1dYB0PHjxQVKtWTXH+/HllWUJCgqJBgwaKnTt3KhQKhWLPnj2KatWqKUJDQ5XL7Nu3T1G7dm1FVlaW2rZ5e3srqlWrpoiLi1Nb/9KKFSsUbdq0UVnPnj17FLVr11akpKQoFAqFon///opOnToVeK26bdWkH3/88UdFx44dC21TYf3q7++vstyePXsUDg4Oyue9e/dWTJ8+XWWZadOmKfr06aOynh9++EH5XC6XK+rVq6cS61Wurq6KNWvWqJT1799fMXnyZOXzjh07Kn788cdC16FQ5Gx3jRo1FA4ODsqHp6enst7NzU2xd+9eldds3bpV0aFDh0LXefr0aZXPwat98lKrVq0UmzZtKrAN8+bNU1lmxIgRKsvs2rVL4eHhofLZzczMVDRq1Ejh5+enUCgUik6dOhXoH6Fw4pySoHTmzBkcHR3JzMwkMzOT1q1b88033wBw/fp1goOD1Z4kfvjwIfXq1eP58+esXr2aoKAgnj17RnZ2NmlpaURGRqosX6dOHZXnn332GYMHD6Zdu3a4uLjg5uZGixYt0NLSIjQ0FC0tLRwcHJTLGxsbU61aNe7du6csk8lkVKpUSfncwsICuVxOQkICZmZmBdqs0PA6xKGhoTg4OKCllXdQoWHDhsjlcsLDw6lRo4babSpsWzXpx1dp2q9vcv/+fbp3765S1rBhwwIjperVqyv/lkqllCpVqsBo96WkpCRiYmJo2LChSnmDBg0ICAh4q/YB2Nvbq5zLk0pzdlEvXrwgMjKSOXPmqJzjzMzMVHkv//77b7y9vQkNDSUxMZHs7GzkcjlPnz7F0tLyrdvzKnXv56NHj2jQoIFKeWpqqvLw8cCBA5k7dy5nzpyhSZMmysOngnoiKQlKTk5OLFiwAKlUioWFBTo6Osq67Oxs3NzcmDZtWoHXlS5dGoBp06bx/PlzZsyYQbly5ZDJZAwaNEh5CPAlfX19lee1a9fm+PHjnDlzhn/++Ydp06ZRo0YNtm7d+trkIZFIlH+/3Hm9WlfYIbGXhwdDQ0ML7FDyUygUKnEKi//qNhVWrkk/vkrTftWEum15tUxdXxbWj28b6010dHQoX758gfKX8efNm1fo7LnHjx8zYsQIevXqxVdffYWZmRk3btxg0qRJb+wriURS4LOm7jXq3s8aNWoozxfm93KCRs+ePWnevDmnT5/m3Llz9OnThxEjRjBu3LjXtul/lTinJCjp6+tTvnx5ypUrp5KQICdx3Lt3DxsbG8qXL6/yMDIyAuDixYv079+fli1bUrVqVQwNDV97Aj8/IyMjOnTowLx58/D29uaff/4hPDycKlWqkJ2dzeXLl5XLJiUlcefOHSpXrvzO2+ri4oK5uXmhM+xenhyvUqUKly9fVtkpX7x4ER0dHezt7d86rib9+CpN+lVHR+eNiaNSpUpcvHixwLrfpx+NjIywsLAosN5Lly6913pfVaZMGSwtLXn48GGBfnuZxP7991/kcjkzZszA0dGRihUrEhMTo7IeHR0dsrKyCqy/VKlSKn2anp7OgwcP3tiu2rVr8/DhQ8zNzQu0Kf8I3crKit69e7N69Wq++uor/vzzz3ftik+eSEqCRj7//HMSExOZOHEiV65cISIignPnzvHNN9+QlJQE5Iw+9u/fz71797h69SoTJ04skNzU2bp1KwcPHiQ0NJTw8HAOHDiAkZERVlZWVKhQgdatW/Ptt98SHBzM7du3mTJlCkZGRnh5eb3z9hgYGCgnBgwfPpyzZ8/y6NEjrl+/zqpVq5Qzq15OTpg7dy6hoaGcOnWK5cuX079//0JHR6+jST++SpN+LVeuHH///TdPnz4lPj5e7XqGDh3K/v372b59O2FhYWzbto0DBw4wdOjQt96O/IYMGcKWLVs4ePAgDx48YPXq1QQHB7/zhIbCjBs3jk2bNvHLL79w//597ty5g6+vLxs2bACgfPnyZGdn8+uvvxIREcHBgwf59ddfVdZRrlw50tPTOXv2LC9evFBORmjSpAkHDhwgKCiIu3fvMnPmTI1Gol5eXpQuXZrRo0dz/vx5IiIiuHDhAt9//71yBt7ChQsJCAggIiKCmzdvcubMGapUqVKkffMpEYfvBI1YWlryxx9/sGLFCoYOHUp6ejrW1ta4uroqp+wuWrSIb775hm7dumFhYcHYsWOJjY1947oNDQ3ZvHkzYWFhSCQSatWqxcaNG5U7/cWLF7No0SJGjRpFeno6DRo0YNOmTe/9G5w2bdqwY8cOvL29mTp1KgkJCVhZWeHk5MTUqVOV271x40aWLl1Kly5dMDExoVOnTkyaNOmdYmrSj6/SpF+nTZvG999/T8uWLbG0tCxwnujl9s6ePZstW7awaNEibGxsmDNnzntfYWHgwIEkJyezbNkynj9/TsWKFVmzZg01a9Z8r/W+qmfPnujr67N582aWL1+Onp4eVapUoX///gDUqFGDWbNmsXHjRlatWoWjoyNff/01EydOVK6jQYMG9OnTh0mTJhEXF8fYsWMZN24cI0aM4PHjx4wePRoDAwNGjhxZYJSljr6+Ptu3b2f58uWMHz+exMRELCwsaNy4sXIGp0KhYOHChURGRmJoaEjTpk2ZPn16kfbNp0Si0PSMryAIgiB8YOLwnSAIglBsiKQkCIIgFBsiKQmCIAjFhkhKgiAIQrEhkpIgCIJQbIikJAiCIBQbIikJgiAIxYZISoIgCEKxIZKSIAiCUGyIpCQIgiAUGyIpCYIgCMWGSEqCIAhCsSGSkiAIwv+wGTNm0LRpUzp16qS2/uVVzj08PPDy8uL69evKur1799K2bVvatm3L3r17i6Q9IikJgiD8D+vWrRubNm0qtD4gIICwsDCOHDnCggULmDt3LgBxcXGsXbuWnTt3smvXLtauXVvovbzehkhKgiAI/8OcnZ2Vt25X5/jx43Tt2hWJRIKDgwMJCQnExMQQGBiIi4sLZmZmmJqa4uLiwpkzZ967PSIpCYIgCIWKjo7GyspK+dzKyoro6OgC5ZaWlkRHR793PHHnWUGFzLFob2GtqYyQLaz/J+yjxB7VpALRS8d9lNiWX68hcvGYjxLbesY6RkoqfJTYPyvCAMgKu/xR4mtXcCB2/ce5+6v5qO/fex1v83+aEbLlvWKpuw+sRCIptPx9iZGSIAhCCSPR0tb48b6srKyIiopSPo+KisLCwqJAeXR0NBYWFu8dTyQlQRCEEua/TEru7u74+vqiUCi4fPkyxsbGWFhY4OrqSmBgIPHx8cTHxxMYGIirq+t7xxOH7wRBEEqYokg2L02aNInz588TGxtLixYtGDduHJmZmQD07dsXNzc3Tp8+jYeHB/r6+ixatAgAMzMzRo8eTY8ePQAYM2YMZmZm790ekZQEQRBKmKJMSitWrHh9LImEOXPmqK3r0aOHMikVFZGUBEEQShhtHdnHbsIHI5KSIAhCCVOUI6XiRiQlQRCEEkYkJUEQBKHYkGh9uhOnRVISBEEoYcRISRAEQSg2RFISSoSOHTvy7bff0rhxY5XyoKAgpk6dSkBAwAeLrZCnkHn/KKTFI63XH4mk6A8v7F61gPBbV7GrXodeE/OmqP62YApRYffQ0dXDtUtfnNt14c6lf/Bd9z1IJDTx7EGLbv00ipGZlc2EXcd5GJuAR40KjGvVUKU+8N4jFh/+G12plLW9PbAxM1Jb9tkGHxQKkEhgcutGuFax5fSdhyw5EoSejpQln7WkqoX5a9sxcc8JHsYm0KZGBca5NVBtR+gjlhwJQleqzY+92mBjasSMfac5cC2UGe2a0M+5FgAjfj/M06RUshTZLO/WiiplC4+pTjYKTvGcRDKxRx9HVC/ceZSnpJKFAnCjNGbokEgmgbwgk2yqYkgNjN8q5kuTFvzAxas3aFCnBivnfK0sHzVzIf/euYdEImHt/BnUq1mNrTt9+W7NRpo1dOC3Vd+9UzyAmbuPczk8inp2lnzfq42y/MaTp0z+4zAKBSzv05bathZM/P0vbj55hkQCP/TOKVviF8jxGw8AmOXVHLcaFd65La+j9QnPvvt0D0z+D/Lz8yuQkP4z2jKkldsjMSj7QVb/8Pa/pKelMPnnXWTJ5YTduKJSP2juKib+tAPndl0AOP7HJoZ+t44p3nv4x2+XxnEO33xAVQtz9o/qTlDYE2ISk1XqVxy/wJ9DuzC7Q1N+PHWx0DKA3cO6sndEN1yr2CqX2zW8K+v7tmXZ0aDXtuNIbjv2jejGhbBIYhJTVOpXnQjmj8FezGzflDWnLgEwoZUT33RoprLc2t5t8Bnelekejdl87prG/fBSGKmYoUMXrIginRSyVOrdKUNnrHDGjGskAHCeOFpSGi+s3jkhXfr3JikpqZzetYUMuZwLV/Lu4fP1qC85s/sXNi+dy4IfNwDg1caNv7atf6dYL115GEVKupxDk/shz8riUliksm7xgTNs/LIzW4Z2YdHBnCthT2jbhL+m9GftAE+WHDoLQJ/GdTgydQC7xvRkaW7Zh/BfXtHhvyaSklAkJFpSJFLdD7b+B9cuUcPJBYAazi48uB6SL7iEX+dP5qcpQ3ge+QgA64rVSE1KJDMjA5m+gcZxgsOjaF7VDgCXyrZcjohR1qVkyNHTkWKkK6OBvRV3ol+oLQPQkkjoucmXEdsPE5uSplyHoUwHSxNDwp6//r4zwRHRNK+ck8yaVSrH5UeFtMPOkrsxOTEtTQwLrEdHO2enlJwhp5ZVaY374aVo0rFFDwAb9IghXaVem5wLcMrJpjQyslCQRCYBPMePaOKQv3VMgH8uXaW1S84XrNYujQkKuaqsq2hXDgAdHR20c3e6ZUqZI5W+34GfCw+e4FajPABuNSoQ/OCJsi42OQ3bUibYmBmTkJrTB+XL5Fy9QEdbG20tiUqZTKqNhPe/OGlhRFISSgR3d3fOnTtHWloa06dPx9nZGU9PT65de/tvyMVNSlICeoY537r1DY1JTUhQ1nUfN4upG/fQdsBIfNbkHLqp7+bB+qlDmN+3Nc5tu2gcJyE1HWPdnEMjJnoy4lLzdsLx+eoAshUKtWUAm/p3YO+IbrSrVYFVxy8o658mpnA3Jpa7MbFvbIdR7nqN9WTEp+Yltvh8dQBZaq7W/FJGZhZdNvgw+0AgDewtXxtT7evJRid3NyFDQgbZKvVZKNhHFGeJxRJd0sjiBRm0oDRNMSeI129nYeISEjE2zkmyJsZGxOZ7v1+atfRHxg7q+07rVyc+JQ1jvZwvVib6usTl6/PsfH2c/Up/z993mhEtnVTKlvidZVBzhyJr26u0tLQ1fpQ0Iil9gtauXcvDhw85evQomzdvxtfX92M36b0ZGJmQlpwIQGpKEvrGeYeFDE1zvp1Wqe9MwvNnAOxdu5hJP+9i7s6TBPn7kJGW+tr1rzt9ic82+OB/4z6J6RkAJKZlYKqfN/oz1ddV1kHO+SJ1ZQDmBjmjiw51KnMrd/T0jWczRvx+mDWnLtKogrXadvwUEEL3jb78deMBSbnrTUrPwOSVdiTli6n1mtsFyKTa7BvRDe/P27Ls2PnX9kF+l4lnP1GEkYI8NxHJUSB7ZZehjYQuWOFBGS4Qhy5amKGDPtqUQkbaK0lMU2YmxiTmHjpNTErGzFj1MODqLdupWaUSrs6O77R+dUwN9EhMy/kSkpiarvLe5+/j/H+vP3GB6lalaZJ7iBbg4OU7vEhOpUfueb0PQYyUhBLF39+fkSNHYmZmhrW1NQMGDPjYTXpvFes24HbwOQBuXThLxdp5O6PU3GQVHR6KvpEJkPNPa2BkglRHhkRLi6zM1x9GGuPWgL0jurGsWysC70UAcPb+Yxxs8y7FbyDTIU2eSXJ6BpcioqlmUUptGeQkNIALYZGUL50zOcCpvDU+Iz5jgrtToZMcRrdwZM+wrizt6kZg6KO8dpRT1w45IRHRVCtkXQqFAnlWzjkgI10Zem9xeMsBUzpjRXNK85icEcNj0ihL3ghNgSJ3igPI0EKKBCla6KCFnGySySyQxDTVpEE9TpzLSaLHzwbR2LGesu5IwN/8ffEKs8YNe6d1F8a5og0Bt8MBOH0rHKeKNso6c0M9HscmEBmXqPyCcOLGA87ff8yUfOfxrj+KYfPpSyzr7VGkbXuVllSm8aOkEbPvPkExMTFYW+d9E7exsXnN0kVDocgmK/QIirQXZIUeQcu6IVqGRTfpwb56HaS6uiwf2RPbKjUxtyqH/y9r6TBoLFvnTCA1MQEk0HfqQgDa9h/Jj1/1R6KlRe0mLZXJ6k3a1qzA+GuhdF6/h9bVy2NpYsi/T55y9dFTPm9UiwnuTvTatA9dqZQfc2dnqSvr7r0XfR0pulIpq3u1BnImJwTcjcDcQI9l3Vq+th0eNSvgt/sEXTb45GvHM64+ieFzp1p81aohfbbsR1eqzaqeOetffTKYvVfuolBAdEIyo1s40u+Xg0jIuajmos7N37rfy6PPKZLZRxR26GOIlGdk8Ix0qmDEIaKVZ05cyTln1QBTDhFDNgpcKfXWMQEa1KmJnq4Mt56DqV+zGvblrFi0dhMzxw5lwtwlmBgb0rrvMKpXqsD6RbM5eDyApT9v5X74I3qOmsyu9cvfOmZ9eyt0pVI8l2+njq0FtuYmLPc/x+QOzZje0ZWhW/ajUKBMONN3HsNYT0bnVX9QxbIUKz9vz7d7TxKTmEyPtTsx0ddl+8ju77T9b1ISR0CakijU3T5QKJHc3d1ZuHAhs2fPZu7cubRo0QKAnTt3snbtWo2mhIs7z/63xJ1nxZ1n34XdgF80XjZi26D3jvdfEiOlT1CHDh3w9vamfv36pKamsm3bto/dJEEQipBE+9MdKYlzSp+gsWPHYmNjQ+vWrRk8eDBdumg++0wQhOLvU57oIEZKn5ATJ04o/166dKlK3dChQ//r5giC8IGUxGSjKZGUBEEQShjt9/yhcHH26W6ZIAjCJ0qi9eGuFvGxiaQkCIJQwkhe84Ppkk4kJUEQhBJGS4yUBEEQhOJCHL4TBEEQig2RlARBEIRiQ1v70/2JqUhKgiAIJcynPFIS174TBEEoYepPP6Txsle+9/yALSl6YqQkqPiYF0X9mBeD/ZgX54z5YfxHiW0xZTXrzWp8lNij4m4BkLR9/keJb9TvW5L/WPhRYhv2nf3e65B8ukfvRFISBEEoacTvlARBEIRiQ1v66Q6VRFISBEEoYT7liQ4iKQmCIJQwWuLwnSAIglBcFOVIKSAggO+++47s7Gx69uzJ8OHDVeoXLVpEUFAQAGlpaTx//pzg4GAAatasSbVq1QCwtrbm559/fu/2iKQkCIJQwhRVUsrKymL+/Pls3boVS0tLevTogbu7O1WqVFEuM3PmTOXf27Zt48aNG8rnenp67Nu3r0ja8tKne7ZMEAThE6WlJdH48TpXr16lfPny2NnZIZPJ6NixI8ePHy90eT8/Pzp16lTUm6NCJCVBEIQSRktbovHjdaKjo7GyslI+t7S0JDo6Wu2yjx8/5tGjRzRp0kRZlp6eTrdu3ejVqxfHjh0rkm0Th+8EQRBKmKK6dYW6C/oU9hsoPz8/2rVrh7Z23q3YT548iaWlJREREXzxxRdUq1YNe3v792qTGCkJgiCUMBIticaP17GysiIqKkr5PDo6GgsLC7XLHjp0iI4dO6qUWVpaAmBnZ0ejRo1Uzje9KzFSEt7K7lULCL91Fbvqdeg1cY6y/LcFU4gKu4eOrh6uXfri3K4Ldy79g++670EioYlnD1p06/dB2qSQp5B5/yikxSOt1x9JEV6DZebu41wOj6KenSXf92qjLL/x5CmT/ziMQgHL+7Sltq0Fy/3PsTkghH5N6zKrcwsATt58wKIDZ9DX0eGHvm2pZlX6tfEys7IZv/MoD18k4FGzIl+5O6nUn7kXwWL/v9HV0WZdn7bYmBmrLQOIik+i0fe/cnpyPyqWMWOaz0kOXL3LzA7N6N+4jkbbn6VQsC01iufZcupIDWmnp9r+n5IfkarIRoqEgQZWmGvpsDnlCQnZmWSiQK5QMNO4gkaxXpr+f/5cuv8EhwrWLB2Yd922GxHRjN96EIVCwaovO1HHPuewU2qGnDoTV7FpVDda1anMoLW7iI5LIj0zk7SMTM4tGqVx7GnbDiljL/sibwd8PSKaCZv3owBWDfaijr0VI3724fbjp+jJpAx2d6KXS30W7TnBsSv3APimV2ta1an8VtuuqaK6okPdunUJCwsjIiICS0tL/Pz8WL58eYHl7t+/T0JCAo6Ojsqy+Ph49PX1kclkvHjxgkuXLjF06ND3bpMYKRUhd3d3zp0791Fid+zYUTlt81VBQUG0aNHivWM8vP0v6WkpTP55F1lyOWE3rqjUD5q7iok/7cC5XRcAjv+xiaHfrWOK9x7+8dv13vELpS1DWrk9EoOyRbraKw+jSEmXc2hyP+RZWVwKi1TWLT5who1fdmbL0C4sOngGgAEu9dkwSPUk8LJD5/Ad3wfvwV58fzDwjTEP37hPVYtSHBjTk6CwJ8QkJKvUrzh2np3DujLb04UfTwQXWgbgfeYyDe3zzhdMatOIbzu6vlUfXM1MwkpLxmQje0KzUonPzlSp76VvwWQje9rqluJEeiwAQwxsmGhkj4duKeroGL5VvMsPnpCcLufIt0PIyMriYuhjZd2C3SfYOqYHv43rxYLdJ5TlW08EU8s279v9L2N74j/7SyZ0dKW9Y7W3i50m5+icoWRkZnEx9FFe7F3H2TquF7991ZsFu/ImAmwe04O/vhlCL5f6AHze3JET84fjM20Ai31OvtW2v42imugglUr59ttvGTp0KJ6ennTo0IGqVauyevVqlQkPfn5+eHp6qiTD0NBQunfvTufOnfniiy8YNmyYyqy9dyVGSsXY9OnTsbS0ZOLEiW9c1s/P74O358G1S9RwcgGghrMLD66HUKFWzj8jEgm/zp+MoakZvSfPo7S1LdYVq5GalIiRWWlk+gYfrF0SLSloFf1H+cKDJ7jVKA9Yia9TAAAgAElEQVSAW40KBD94QoMK1gDEJqdhW8oEgITUdAAsTAy5E/W8wHoMdWUY6soIexb3xpjB4VF41cv5x3atbEvIo2ja1aoEQEqGHH0dKUZ6MhraW7Hw0Fm1ZQDPklJISpdjZ26iXLelydslCIAHmak00MkZeVWTGhCelUY9LSNlfRktGZDzY85Xd3+X5Um465q/Vbzz9yJoVTtne1vVrsyF0AgaVi4HQGxyKralTQFISMnp84zMTIJDH9O0WsHzGAcv3mR0uyYFygsTdDeCVnVzY9etzPl7j2hY2TYndlJe7PiUNAAkwPD1eyhlZMDyQZ2wL2tGBYuc7dXVkVKwR4pOUf5Oyc3NDTc3N5Wy8eNVLxI8bty4Aq9r0KABBw4cKLJ2vCRGSoLGUpIS0DPM2UHpGxqTmpCgrOs+bhZTN+6h7YCR+Kz5DoD6bh6snzqE+X1b49y2y0dp8/uIT0nDWE8XABN9XeJS05R12flOEGe/4e4vMQnJ3Il6rjZhFYiZmo6xXs6O3lhPRnzuzvdlnZGuLC9utkJtGeSMkga71HtjvDdJVWSjl3s4VF+iRYoiq8Ay2QoFf6U9p7nMTFmWpVDwJCsde229t4oXn5KGsX5unxvoEpecr8+zC/b5/50OoY9r/QLryczK4npENA4Vbd4idiom+jntNdXXIy45tUC8/H8v6t+e4/OGM9GrOTO2+6usa9GeEwxprXrotSjJpFoaP0qaktfiYu7mzZt4eXnRsGFDJkyYQHp6zk5l586deHh40KhRI0aOHKmcdqlQKFi0aBFNmzalYcOGeHl5cefOHf78808OHDjA5s2bcXR0ZOTIka+Nm//QYVpaGtOnT8fZ2RlPT0+uXbtWJNtmYGRCWnIiAKkpSegbGyvrDE1zdkhV6juT8PwZAHvXLmbSz7uYu/MkQf4+ZKSlFlxpMWZqoEdiWs77l5iajmnuzhJUL/Pyuku+zP2sJUM372f1kX9oVKlcocutO3WRz9bv4a/roSSmZQCQlJaBSb6Ypvq6JKVnqMRVVxafms6TuCRqvOH81escTX/ByqSHXMlMIk2RDUCaIhsDiXaBZfekPaWxzISy2nnJ8U5mCtWkbz86NjXQIzF35JmQmo6pQV5Sy38oSksiITMri2PXQmlbv2qB9QTcCKN5zQpvGVufhNwvHgmpaaqx1bzfpYxytq9ZjfLExCUp6/dfuMGLxFTlIb0PQVtLovGjpBFJqYj5+/uzadMmjh8/zu3bt/Hx8eHvv/9m+fLlrFq1isDAQMqVK8ekSZMACAwMJDg4mMOHDxMcHMyqVaswMzOjd+/eeHl5MWTIEEJCQt7q8h1r167l4cOHHD16lM2bN+Pr61sk21axbgNuB+ckvlsXzlKxdt5Jz9TcZBUdHoq+Uc4hI4mWNgZGJkh1ZEi0tMjKlBdJO/4rzhVtCLgdDsDpW+E45fvWbW6ox+PYBCLjElUSx6saVSrH/ol9mdS+6WsnOYxp2ZC9o7qzrLs7Z+5FABAY+ghHO0vlMgYyHVLlmSSnZ3DpYRTVLEupLbv3NJb7z+Los9GX03cfMnXP25/b8NAtxUQje/rqW3IrMwWA25kplH9l5HM2Iw4J0ERmqlJ+OTOJ+jpGvK1GVew4df0+AKf+vY9zFVtlnbmhPo+fxxMZm4CJgS4x8ck8fh7PZ0u28efZq8z98xixuaObA8E36eRU861iN65qx6l/c2Kf/Pc+jarY5cU2yov9Mlkl5B7Gu/PkKaaGOWX/PozC+0gQK778sD8w/ZSTkjinVMQGDBignCbZqlUrbt68ybVr1+jevTu1a9cGYNKkSTRq1IhHjx4hlUpJTk7m/v371KtXj8qV33+2jr+/P3PmzMHMzAwzMzMGDBjAunXr3nu99tXrINXVZfnInthWqYm5VTn8f1lLh0Fj2TpnAqmJCSCBvlNzbp7Wtv9IfvyqPxItLWo3aalMVkVNocgmK/QIirQXZIUeQcu6IVqG7z/pob69FbpSKZ7Lt1PH1gJbcxOW+59jcodmTO/oytAt+1EoYFlvDwC2nb3CloAQYlPSiEtJY1mftiz3P8fpW+GYG+mxsm/7N8ZsW6siB/8MxWvdLlrXqICliSH/Pn7Klccx9GtUmwnuzvT09kVXR5s1vdsCFCizNTfm0LheAHy14ygT2zgDsPL4BfaG3EahUBCdkMySKW/ug3pSI36TR7I86SG1pYaYakmJyErjYVYaLjIz/kyNoby2HiuTHlJVakAnvTIoFAoeZKbSW0/91OLXcahog56OlLbzN1O3vBV2pU1Ztu80U7u4Mat7Kwat241CoWDFoI7YlDLh9IIRACzac5Km1e0xN9RHoVBw/l4Ey794uzuuvoztMW8Tde2tsCtjylLfU3zdtSWze7gzaM1OFMCK3MksQ9btzjnEJ5GwarAXALO2HyYmIYku3/+KqYEef07+MDNOS2Ky0ZS4HXoRcnd3Z+HChTRr1gyANWvWEB4eTlxcHK1ataJfv7wPqIuLCz/++CMNGzbkt99+w9fXlydPnuDh4cG0adMwMjJ6q4kO+WPXrVsXHx8fqlbNOaxx5swZZs2aRUBAwBvXI+48+98Sd54Vd559F71/Oa/xsn8OavTe8f5L4vDdf8DCwoLHj/OmtqakpBAXF6ccUQ0cOBAfHx/8/PwICwtj06ZNwLv/FqFs2bJERuZNX87/tyAIJZ+Y6CC8Fy8vL3x8fLh58yYZGRmsWLGCevXqYWtry9WrV7ly5QpyuVz5Q7SXl/EoXbo0jx49esPaC+rQoQPe3t7Ex8cTFRXFtm3binqTBEH4iLS1tDR+lDQlr8UlUNOmTRk/fjzjxo3D1dWViIgIVq5cCUBycjKzZ8+mUaNGtGrVCjMzMwYPzjmM1aNHD+7du4eTkxOjR4/WON7YsWOxsbGhdevWDB48mC5dSt50bEEQCicmOggaOXHihMrz/D8469u3L3379i3wmqZNmxb6A7QKFSpofK+S/LH19fVZunSpSn1RXP5DEITioSQmG02JpCQIglDCiKQkfHRPnjwpcIXel/z8/LCx0fyX64IglGzaRXRB1uJIJKUSwsbGhpCQkI/dDEEQioGSOKtOUyIpCYIglDBScfhOEARBKC7EOSVBEASh2BBJSRAEQSg2PuWkJK59JwiCUMLMP3pb42W/9aj+AVtS9MRISRAEoYQRs++E/xnRSwve9vi/YPn1mo96pe6PeYXyZz9O/iixy3y1nLBpX3yU2BWW/ApAxOwhHyW+3cLNxHnP/CixzYYveu91fMqH70RSEgRBKGFEUhIEQRCKDZGUBEEQhGJDJCVBEASh2NApgfdJ0pRISoIgCCWM9qc7UBJJSRAEoaTREofvBEEQhOJC3LpCEARBKDa0RFISBEEQigtxTkkoFoKDg5k1axaHDx/+4LEys7KZsOs4D2MT8KhRgXGtGqrUB957xOLDf6MrlbK2twc2ZkZqyz7b4INCARIJTG7dCNcqtpy+85AlR4LQ05Gy5LOWVLUwL7QdM3cf53J4FPXsLPm+Vxtl+Y0nT5n8x2EUCljepy21bS1Y7n+OzQEh9Gtal1mdWwBw8uYDFh04g76ODj/0bUs1q9JF2k8KeQqZ949CWjzSev2RSN5vVtRsn1Ncjoimnq0Fi7q3UpbffPKMKTuPoQCW9WxN7XJl1ZbtC7nDuhMXkEgkTPBoRIe6VQBIzZDTcP5m1g/ogFv18q9tQ2Z2NlMPneNRfCLulW0Z1aSuSv258Eh+OBOCrrY2Kzq5Ym1sCEB0YgotvH04PLgzFcxNCi17U+zJB84QEZdI66p2jGlWX6X+bNgTlp26iK5Um1Wd3bA2MWSUzwmeJaeRlZ3Nsk7NqVzaVG2ZJmbuPEZIeCT17a34vreHsvzG46dM2v4XChQs/7w9dWwtmPB//tx88hQJEn74vB11bC2Y8edRrj2KAeDfRzGErZyoUdy3JdX+dGfffbpb9glycnL6TxISwOGbD6hqYc7+Ud0JCntCTGKySv2K4xf4c2gXZndoyo+nLhZaBrB7WFf2juiGaxVb5XK7hndlfd+2LDsaVGgbrjyMIiVdzqHJ/ZBnZXEpLFJZt/jAGTZ+2ZktQ7uw6OAZAAa41GfDoE4q61h26By+4/vgPdiL7w8Gvl+nqKMtQ1q5PRKDsu+9qisR0aRkyDk4vjfyrCxCwqOUdd8fOov3Fx3ZPKgj3x86V2jZhlMX8R3XC9+xPVl/Mu89+O3cNWpal9GoHcfuRVCltCm7+nUg+FEMT5NSVerXnLvKbz09+NqtAT/986+yfMvFmzjaqPaDurLXOXrnIVXLmOHzRScuRMQQk5SiUv9j4GX+r297prdyYt25KzllXVqya4AnX7dsyNYL1wste5OXnzf/qQPIyMziUtgTZd2i/QFsGtqFrcM+Y9H+AAAmtm/K4a8Hsu6LjizN/Wwt7u3Bwcn9WNSzNW3rVNZ4u9+WtkTzR0kjklIJkZmZ+Z/GCw6PonlVOwBcKttyOSJGWZeSIUdPR4qRrowG9lbciX6htgxyjn333OTLiO2HiU1JU67DUKaDpYkhYc/jC23DhQdPcKuR863erUYFgh/k7SRik9OwLWWCjZkxCanpAFiYGCJRc6zdUFeGlakRYc/i3qNH1JNoSZFIdYtkXcFhkbSobg9Ai2r2BIfnJeHYlDTKmRtjbWZMQlp6oWWVLUqRkiEnOUOOsV5OuzIys7gUHknjSjYatePS46e4VLAGoIm9FVeininrUuWZue+zDo42ZbmX26fPU9JIzpBja2qkXFZd2Ztjx+BaIaedzcpbceXJK7GlubHLWXA3N7ZO7qghOSOTGhalCi17k/Ohj3GrWQGAljUrEHw//+ctNefzZp73eStfxkwZ69Ufsx68fAcvxw93dW4tiUTjR0kjktJH5u7uzoYNG/D09MTZ2ZkZM2aQnp5OUFAQLVq0wNvbGxcXF2bMmKEseykyMpKxY8fSpEkTGjduzPz585V1u3fvpkOHDjg7OzNkyBAeP378Vu1KSE3HWFcGgImejLjcf0SA+Hx1ANkKhdoygE39O7B3RDfa1arAquMXlPVPE1O4GxPL3ZjYQtsQn5Km3LGa6OsSl5qX1LLz3XEl+w13X4lJSOZO1HPuRD1/7XIfW3xqOsZ6uX2ur0t8Sv7tJd/fikLLOtWvQutl/0erpdsY2sIBgD+CrtPTuZbG7UhIz8BYpgOAsa6M+LSMvDamZWCUWweQlRt3S/BNBjaoobIedWVvEp+WgZFu/tiqn7uXdQBZuR2QkZVFt18P8u2Rv2lQrmyhZW+MnZqm0v9xKYV83rJVP2/zfE8x3N1Jpez49fu0rlNJo7jvQltLovHjTQICAmjXrh0eHh54e3sXqPfx8aFJkyZ06dKFLl26sGvXLmXd3r17adu2LW3btmXv3r1Fsm3inFIxcODAATZv3oy+vj4jR47kp59+olmzZjx79oz4+HhOnjxJdnY2V65cUb4mKyuLESNG0KRJE06cOIG2tjbXrl0D4NixY2zYsIGff/6Z8uXL4+3tzeTJk9mxY8cb27Lu9CWO3QrjdvQL+jWuDUBiWgYVc78VApjq65KYnrejkkjUlwGYG+gB0KFOZf68eAuAbzybMeL3w9iaG9Mo9xu5OqYGeiTm7pQSU9Mx1c8bkeT/Bvi6b4NzP2vJ0M37sSttQqNK5d64/R+Tqb4uibkJIDEtAxOV7SXf35JCyxYfOkfgjJwrf/f5eS/Nq9pz8lYYvwzpzKV8Iy91NgT9y8n7j7n7LI4+9asBkJQhp7yZcV4b9WQkZchV4iakZRCZmEy1fJ8RdWWv8/Pf1zhxL4I7z+L43KF6Xux856FM9XVJSleNDSDT1sbni05cjXzG8tMhbO7VRm3Zm5jq6+X1f2oGpgaFfN7ydfz6Y+epYV2GplXslGWh0S+wNjPGIF/yLmpFNQLKyspi/vz5bN26FUtLS3r06IG7uztVqlRRWc7T05Nvv/1WpSwuLo61a9eyZ88eJBIJ3bp1w93dHVNTzc7fFUaMlIqBfv36YW1tjZmZGaNGjcLPzw8ALS0tvvrqK2QyGXp6eiqvuXr1KjExMXz99dcYGBigq6uLk1POt7UdO3YwfPhwKleujFQqZeTIkdy8eVOj0dIYtwbsHdGNZd1aEXgvAoCz9x/jYGuhXMZApkOaPJPk9AwuRURTzaKU2jJA+U9+ISyS8rknm53KW+Mz4jMmuDu9dpKDc0UbAm6HA3D6VjhOFfMOP5kb6vE4NoHIuESVnferGlUqx/6JfZnUvmmRT3Ioak4VrDlz5yEAAbcf4pQvYZsb6PEkLpGo+CRMckeP6sp0pdro6+hgINNBnpXF08RkHscm0mv9HnYF32ThgUCVEUB+IxrXYUffdnzXrgnnchPY3w+jqG+d12/6OtKc9zlDzuXIZ1QtbUroi3jCYhP4YtcxAsOeMPvIP2rLXmdk07rsHODJ4g7NCMw9l3MuLJL6+c6D6etIScvMjf34KVXLmKFQKJBnZQNgrKuDno622jJNNKpcjtO3wgA4desBThXzvsSYG+oX+LyduHGf8/cfM8XTRWU9By/foZNDNY1ivquiOqd09epVypcvj52dHTKZjI4dO3L8+HGN2hAYGIiLiwtmZmaYmpri4uLCmTNn3nvbxEipGLC2ztv52NjYEBOTc/7G3NwcXV31O9zIyEhsbGyQSgu+hU+ePGHRokUsWbJEWaZQKIiOjqZcOc1GC21rVmD8tVA6r99D6+rlsTQx5N8nT7n66CmfN6rFBHcnem3ah65Uyo+530LVlXX33ou+jhRdqZTVvVoDsOpEMAF3IzA30GNZt5aFtqG+vRW6Uimey7dTx9YCW3MTlvufY3KHZkzv6MrQLftRKGBZ7iypbWevsCUghNiUNOJS0ljWpy3L/c9x+lY45kZ6rOzbXqNtfxsKRTZZoUdQpL0gK/QIWtYN0TJ8t0kP9e0s0ZVK6bT6T2qXK0M5cxNWHAliUtvGfN2hGcN+8UMBLOnhDqC2bJBLfTquzhkRD2hWD2szY45O6QfAUv9zNK5UDjMDPXXhlVpXtuOv22fpud2flpVssTAy4Eb0C65FP6d3vaqMaVqXATuPoqutzQ8dXShnYoRPf08Aphw6y9imdalgblKgTBNtqtrjfyuAbr8exL2KHZbGBlyPes61qOf0cajGWJf69Pv9L3Sl2qzwakF6VhYD/ziCRAISJCxo31RtmUb9b2+Fno6UDsu25XzeSpnww6GzTPF0YbpXc4Zs3IcCBT/0bQfAtB1HMdaT4bXid6pYlmJV/w4AHL56j99Hd9co5rvSKaLZd9HR0VhZWSmfW1pacvXq1QLLHTlyhAsXLlCxYkVmzJiBtbW12tdGR0e/d5vE7dA/Mnd3d4YNG0bfvn0BOH36NAsWLOC7775j6tSpBAQEKJcNCgpSloWEhDB69GjOnDlTIDENGTKELl260Llz57duj7jJ339L3ORP3OTvXZy491TjZd2rFP4lyd/fn8DAQL777jsAfH19uXbtGt98841ymdjYWAwNDZHJZPzxxx/4+/vz22+/sWnTJjIyMhg9ejQA69atQ19fn8GD3+9/SRy+KwZ+//13oqKiiIuLU056eJN69epRtmxZli9fTkpKCunp6Vy8mDMFuE+fPnh7e3P37l0AEhMT8ff3/6DbIAjCf0dbItH48TpWVlZEReX99CA6OhoLCwuVZczNzZHJciaA9OrVi+vXr2v82nchklIx0KlTJwYPHkybNm2ws7Nj1KhRb3yNtrY2P//8M+Hh4bRq1YoWLVooE4+HhwdDhw5l0qRJNGjQgE6dOqmMuARBKNmKakp43bp1CQsLIyIigoyMDPz8/HB3d1dZ5uXpBIATJ05QuXLO769cXV0JDAwkPj6e+Ph4AgMDcXV1fe9tE+eUioG6desyYsQIlbLGjRsXSCSvltnY2PDTTz+pXWfXrl3p2rVr0TdWEISPrqgu6CCVSvn2228ZOnQoWVlZdO/enapVq7J69Wrq1KlD69at2bZtm3KGr6mpKYsXLwbAzMyM0aNH06NHDwDGjBmDmZlmsy1f26b3XoMgCILwnyrKm/y5ubnh5uamUjZ+/Hjl35MnT2byZPXnPXv06KFMSkVFJCVBEIQSpiReqUFTIil9ZCdOnPjYTRAEoYT5hK/HKpKSIAhCSSNGSoIgCEKx8QnnJJGUBEEQShotPt2sJJKSIAhCCSPOKQmCIAjFhjh8JwiCIBQbn/LhO3FBVkEQhBLm3tNEjZetUtb4zQsVI2KkJKiIXDzmo8S1nrGOmB/Gv3nBD8BiyuqPeqXuj3mF8sfzRrx5wQ+g3JwNADxZ+ObrPH4INrPXf9TP2/vS4IayJZZISoIgCCXMm67+XZKJpCQIglDCfMI5SSQlQRCEkuYTnhEukpIgCEJJI/mEh0oiKQmCIJQwYqKDIAiCUGx8wgMlkZQEQRBKGjH7ThAEQSg2xOE7QRAEodj4hHNS8ZpZ+OTJExwdHcnKyirSZYsrR0dHIiIiNFq2evXqhIeHf+AWqZeZlc24ncfossGHNacvFagPDH2E1/o99Njoy5P4JABm7DtNnYVb2H7hhnK5Eb8fppu3L102+HDvaexr44354zBe63bx44ngAvVn7kXguWYnn/28hydxiYWWAUTFJ2E/Yx0PnsUBMM3nJLXmevN/Qf8WGn+2zyk6rf6TmXtOqpTffPKMjqt24LlqB9cfPy20bF/IHdou3067Fb/jf+2e8vWpGXJqzf6Z07eL5n1UyFOQ396H/MpvKBTZRbJOyOn/r3xO8Nnmfaw9c7lA/dn7j+m8yZeevxxQvt+Dfv+Lblv20/vXg8oygFR5Jo7LtnEm9JHGscftPk7Xjb6sDQgpUB94/zFe3nvpsWV/3mftQAB1F//C78E3lcvtvnwHL++99PvVj5jElDfGLIrP27Bth+i6fjde63ZxLya20LKioCXR/FHSFKukZGNjQ0hICNra2kW6bHEVEhKCnZ3de6/Hx8eHvn37FkGL1Dty8wFVLczZN6IbF8IiC/yTrzoRzB+DvZjZvilrTuUkrQmtnPimQzOV5db2boPP8K5M92jM5nPXCo13+MZ9qlqU4sCYngSFPSEmIVmlfsWx8+wc1pXZni7KnYi6MgDvM5dpaG+lfD6pTSO+7ehaaOwrEdGkZMg5OL438qwsQsKjlHXfHzqL9xcd2TyoI98fOldo2YZTF/Ed1wvfsT1Zf/Ki8vW/nbtGTesyhcZ+a9oypJXbIzEoW3TrBI7cDqdqGXP2DunChYdRBd/vgEv8PsCTGW0asy4wJ2nN79AMn8GdGePqwKZ/8t7b7RdvUt2ilOaxb4VRtaw5vsO6cj5czWft1EX++KIjMz0aK5PWhJYNmd2uiXKZzKxsfj1/Hd+hXZjWphHrzhRMbvkV1eftp8/b4TuqBzPaN2VTbr+oKysKEolE40dJU6ySklA8BUdE07yyLQDNKpXj8qMYZV1Khhw9HSlGujIa2FlyN+YFAJYmhgXWo5P7BSI5Q04tq9KFxwuPokXVnGTtWtmWkEfRKvH0daQY6cloaG/F7ZgXassAniWlkJQux87cRPl6de1SiR0WSYvq9gC0qGZPcHiksi42JY1y5sZYmxmTkJZeaFlli1KkZMhJzpBjrKcLQEZmFpfCI2lcyea18d+GREuKRKpbZOt76eKjaFwrlQOgWUUbrjx5qqxLzchET5r7fttacCd3xGuf28faWlrKW3VnZGYR8igGZ3tLzWNHRNO8cm7sSuW4/Djvs5aaIUdfqq38rL2MbWms+p7GpqZhbWKItpYWtaxKcynf51Wdovq8qXy+c798qCsrCmKk9J7c3d3ZtGkTXl5eODg4MHPmTJ49e8bQoUNxdHRk0KBBxMfH8+jRI6pXr05mZiYAAwYMYNWqVfTp0wdHR0cGDx7Mixc5HwB1y65cuVK57MiRI4mNjWXy5Mk0aNCA7t278+jRI7Wvffn6Xbt2ATkjjz59+rBo0SKcnJxo3bo1ly5dwsfHBzc3N5o2bcrevXvfuN3Tp09n3rx5DB8+HEdHR3r27MnDhw+V9fkPycXGxjJy5EhlW1euXFlg9HPu3Dnatm2Ls7Mz8+bNQ6FQEBoaypw5c7h8+TKOjo44OTkBcPr0aTw9PXF0dKR58+Zs3rz5nd47gITUdIx0ZQAY68mIT01T1sXnqwPIes1F5zMys+iywYfZBwJp8JodVXxqOsZ6+eKlpBcaLztbobYMckZJg13qabqZBWKb6OsSn5K3rdn5Ni07dzvVlXWqX4XWy/6PVku3MbSFAwB/BF2np3Ott2rLx5KQloHxy/dbV0Z8al7/x6WlY6yro3yena8DsrKzWRMQQn+nnO3cefk23etXfcvY6crYJmpiq3ufX1XKQI+I2ERSMuSce/CYuHzvoTpF9XnLyMzCa90uZvqepmF5q0LLioK2RKLxo6T5z0ZKR44cYevWrRw+fJiTJ08ybNgwJk2aRFBQENnZ2Wzbtk3t6w4ePMjixYv5+++/kcvlbNmypdAYhw4dYunSpQQEBPDw4UP69OlD9+7dOX/+PJUrV2bdunUat/fq1atUr16doKAgOnXqxKRJk7h27RpHjx5l2bJlzJ8/n+Tk5Deux8/Pj7Fjx3LhwgXs7e1ZuXKl2uXmz5+Pvr4+Z8+eZcmSJfj6+hZY5tSpU+zevZt9+/bh7+/PmTNnqFy5MvPmzcPBwYGQkBCCg3MOJcyaNYv58+cTEhLCwYMHadKkSYH1vclPASF03+jLXzcekJSeAUBSegYm+nnfzk31dZV1gPJbsjoyqTb7RnTD+/O2LDt2vkD9ulMX+Wz9Hv66HkpiWm68tDfHU1cWn5rOk7gkarxmRKaOqb6uMnbiK7Hzf+t8uZ3qyhYfOkfgjC84N3MQP/z1D5lZ2Zy8FUabWhXfqi3/tfVnr9Bj6wEO3wojMf/7rZe3AzbT0yUxXa58nv/w0D0FAVYAACAASURBVPzD/9CjflUqlDIhMyubU/ce4V7VXrPYgZfpsXkff93Mi52YnoGpXl7/m+m9+j6rX5e2lhYTWzZkwLZDHLvzkEplzNQuV5SfN8j5fB8Y05NNAzxZcvifQsuKgkSi+aOk+c+SUv/+/SlTpgyWlpY4OTlRr149atWqhUwmw8PDgxs3bqh9Xbdu3ahYsSJ6enq0b9+emzdvql3u5bL29vYYGxvTokUL7OzsaNasGVKplPbt2xcaQx1bW1u6d++OtrY2np6eREZGMmbMGGQyGa6urshkMpVRT2E8PDyoV68eUqmUzp07q21/VlYWR44cYdy4cejr61OlShW6du1aYLlhw4ZhYmKCjY0NjRs35tatW4XGlUql3Lt3j6SkJExNTaldu7bG2/7S6BaO7BnWlaVd3QjMPVF99v5jHMpZKJcxkOmQJs8kOV1OSEQ01SzM1a5LoVAgz52UYqQrQ09acOLnmJYN2TuqO8u6u3PmXs4EkMDQRzja5Y2qDGQ6pMozSU7P4NLDKKpZllJbdu9pLPefxdFnoy+n7z5k6iuTFgrjVMGaM3dy3teA2w9xqmCtrDM30ONJXCJR8UmY5O4s1ZXpSrXR19HBQKaDPCuLp4nJPI5N/H/2zjssqqPtw/eySxUQ6SBYgjVWpBqxgRXEbtT4WmP99LVrjDG8EY1RY6JREyOxxqhJVGID7Bo1VmwYS1RsCAgogvRdYL8/VhdXUBYBATP3dZ3rYp+ZM7+Zw+55zsw8Z4YPV2xjS/g15u46XujTe1kwpkUTtg71Z36Xlvx1JxqAE3djaPLC/9tQT0Zm9rP/94N46lip/t+bz19HIoHeTesAkJCWQezTNAZsCCU44hbzD54l6YVeTz5tr6Zs/bgbC7q24njkM+07MTRxyJsvM9TTJSM755l2HLVf8V0D6FC/Bts+7kan+jXweEUPpSS/by9+v0309TDQlRVoKykkSqXWR0XjrYWEW1rmjafq6+trfDYwMCA9veAIGSurF76UhoavzFccjYKwsMh7wjYwMCiwfG16StrUITExkezsbOzs8m6AL/79nJevxev0ly5dyooVK/jmm2+oW7cuU6ZMwdnZudD6FkT7+jUI2XqIbiuD8albHRvTSvwd84iImHg+cn2f8W1d6LdmJ/oyKUv6+ADw3eFw/rh0E6US4p6m8X+tnBmwbjcSVE/X87q2fKVeh/drsvu3SPy/34JPvRoqvegELkXHM8C9ARO93egTtB19XSnL+nYAyGdzqGJC6H8/BGD8r/uZ1M4NgMUHz/LHhX9QKpXEPU1jSnsPDe0mjjboy2R0+e43GlS1pGoVU77dd5rJHTyY3vkDRqwLQQks6O0NUKBtSIsm+H33KwADP2iMnZkJ+6cOAGBh2Ak83quKmZHBG/0vXkSpzCUnch/KzERyIvehY+eCTqXiBz20r1udSdvv0GP1DrxrV8PGxIgrsY+IiH1E/2b1GN/Smf4bQlT/7+5tAfgs5DhNq1rTe+0uPGvYMbWtKyEjewDwzeFw3KvZYmZY+PxX+3rVCQ2+TfeftuNdpxo2JpX4O/YRl2MS6O9Sn/Gtm9Fv/W70ZVK+66nS/u7IObZH3EIJxKWkMamtK7N2H+ef+EQczEyY5//q7xqUzPctKzuH/qt2gAQkSJjfo02BthKjBKMtyxv/yveUjIyMAMjMzMTY2BiAhISE151SqpibmyOTyXj48CE1a6qGeGJjYws5K4+CImwaN27MihUrUCgUbNy4kYkTJ/Lnn3++Uf10pVK+79tew9bQ3pKG9iqH26qWI61qaUYRTmjryoS2rhq2bSPy9/5epbfio46aelWtaFhVdcNtXacaretoDgsVZHvO0n55dZ/k48YkH7fX6s/r1Vbj8+QOKsfVoKoVIRP7aaQVZOvv0YD+HgX3TKe/FJFYHCQSHWS1OpVYec/RleqwvJe3hq2BnSUNnk3Ut3RyUAe+POf258NfWd6Ul74Hr9eWsrxPOw1bQztLGj7TbuXkQKuXtCe0cWFCGxcN29wur46wLEizJL5vf4zpla/sgmwlgeQddkr/yug7c3NzbGxs2LFjBzk5OWzdulXr94VKA6lUSvv27Vm+fDkZGRlERkayY8cOrc+3sLAgLi4OuVw1zi2Xy9m5cycpKSno6upSqVKlCh06LxAIXiI3R/ujgvGvdEoAc+bMYfXq1Xh4eHDr1q03HtoqKQICAkhJSaFFixZMnz4dPz8/9PT0Cj8R8PT0pFatWnh5eeHhoXqq37FjB97e3jRr1oxff/2VhQsXlmb1BQLB20SZq/1RwZAolRVwJuxfwNdff82jR49YsGDBW9WN/WrsW9V7jt2n3xO/aEKZaFtP/Y5HS6eUibbl+G/Qcx5WJtryC2uInj2qTLSr/m8lADFzx5SJvv2sFWX6fSsu8uRHWufVq1yCL2y/Bf61PaXyRmRkJNevX0epVBIREcHWrVtp37594ScKBIJ/H+9wT+lfGehQkvj5+RETE5PPPnv2bLp27ap1OWlpaUyZMoX4+HgsLCwYNmwYPj4+JVlVgUDwrlCCzubo0aN8+eWX5Obm0qdPH0aOHKmRvnbtWrZs2YJUKsXc3Jx58+ZRtapq1Y369etTp47qNQA7Ozt+/PHHYtdHOKViEhISUiLlNG7cmP3795dIWQKB4B2nhJxSTk4OgYGBrF27FhsbG3r37o23tze1atVS56lfvz7btm3D0NCQTZs28fXXX7NkyRJA9ZpLUYKytEEM3wkEAkEFQ5KTrfXxOiIiIqhevTqOjo7o6enh5+fHwYMHNfJ4enpiaGgIQNOmTXn48GFBRZUYwikJBAJBRaOE5pTi4uKwtc1b8cLGxoa4uLhX5t+6dSutWrVSf87KyqJnz558+OGHHDhwoPjtQgzfCQQCQcWjhIKmCwq+ftV2Fzt27ODvv//ml19+UdsOHz6MjY0NUVFRDB48mDp16lCtmnbrHb4K0VMSCASCikYJ9ZRsbW01huPi4uKwtrbOl+/EiRP8+OOPrFixQuP9SRsb1TqBjo6OuLu7F2l90VchnJJAIBBUMCTKXK2P19GoUSPu3r1LVFQUcrmckJAQvL01l5i6evUqAQEBrFixQmNN0OTkZPUqMomJiZw/f14jQOJNEcN3AoFAUNEooeg7mUxGQEAAw4cPJycnh169elG7dm2+++47GjZsiI+PDwsXLiQ9PZ0JE1QvGz8P/X6+l5tEIkGpVDJixIgScUpiRQeBQCCoYGQ/uKJ1XplD0betKUtET0mgwWhJjTLR/VF5lxVm9cpEe0zSde5+MrhMtGssWF+mS/2U5RJHABejk8pEv2lVMy739y0T7UabQ4tdxru8SrhwSgKBQFDRyBVOSSAQCATlhXd41kU4JYFAIKhoiOE7gUAgEJQXJLmvXz6oIiOckkAgEFQ0RE9JIBAIBOWGCrjNubYIpyQQCAQVDKWIvhMIBAJBuUH0lAQCgUBQbhBOSSCAXJQc4TEpZFMNQ5yprJG+nwQyyEEJtMYCM3RJIZvjJJJNLrWpRD1M3kg7R6lkQ8ZDHucqaCirREcDC430H9IekKHMRYaEQUa2VNHRZXV6DE9zs8lGiUKpZKZJjSJpZufmMi30BA+SU/B2cmCMZyON9BP3Yll07AL6UinfdvHCzqQSAHEp6bQKCmbvsK7UqGL6SttrtXNymbzjCFFPUvCpU51xLZtqpP91O5oFh86iL5PyXY+22Fc2ZsimPTzNlKMr1WFx9zbYVzYGIEORzQdLNrO0Z1taOjkU6Rq8CqUinezb+yEzGVnj/yCRlPzazou+mMnViAvUa9iE6YHzNdIyMzLo8kFT5i5diWfLNiQ/ecKXn04mKfEx7l6tGD5+aonUITs3l4DTl4lOy6CVvRUfv++kkT43/Ar7o2IZ37guvZwcS0RTG5QKxVvTetuUq1XCvb29OXHiRJnWITMzk9GjR+Pi4sL48ePfmq6fnx+nT59+a3pvwl0yMEOXbtjykCzS0Xxa88aSrtjihhmXeQrAGZJogwX+2L6xQwKIyE7FVkePKcbViMzJIPmlkNgPDa2ZYlyNDvrmHMp6AsDHRvZMMq5Ge31zGupWKrLmgVtR1LKozJYBnQl/EE9CaoZG+rITEfzcpz3TWzfjh1N/q+1rzl3D2d5KI29Bttex75971Laswh8fd+Ps/YfEp6RrpC85ep5NA335tJ0H3x+/CEBg5w8IHtaVsV5NWXXqsjrvxnPXqGttrrW2Vkj1kDl1QmKkfZuKwrXLl8hIT2dNcBgKhZwrF89rpAdvXI9T3frqzysXL2DM1E8J+n1niTkkgCPR8dQ0NWZ9O08uPHrCo4wsjfRRDZyY3KQMlsfKzdH+qGCUK6dUHtizZw+PHj3i9OnTLF269K3phoSE4OHh8db03oQ4snDAAAB7DIhH8wcqRbU5mIJcLNAjByWpZHOUx4QQRxJv/nR3JzuDejIjAOrIjLiXk6mRbqmj2uNFRyLh5S3KLipSaapbdId4PjqBFjXsAPCsZsulh4/UaRmKbAx0ZRjr6+Jsb8WtR6o13B6nZ5ImV+DwrJfyKlthnHsQh9d7VQH4oKY9l2IS8rTl2RjIZBjr69HMwZobCSonXO1ZD0yqo4POs43a5Nk5XHgQj1s1myK3/3VIdGRIZPolWuaLRJw7g0fL1gB4eLUh4ny4Ok0hl3P5QjjObp5qW+Q/11i97FtG9PHn0rkzJVaPS4+T8LRV9crdrC34O1FzrT4rQ4MS0yoKytwcrY+KxjvplLKz3/zFspiYGGrUqIFMVrSRzeJoVhTk5KL77CujhwQ5mhFAOSjZwUP+4gk26JNJDonIaYUFzanCaZ68sXaGMheDZ0NEhhId0pX5f2y5SiV7Mh/TUs8sr05KJTE5WVSTFv3m8TRLjomeLgAm+nokZ8rVacmZcoyfpT3XAVgTfo1BzTSfnAuyFaqdKcdEXy9P+4Un9KTMLEz087Rzc/OWnMnJzWXZ0Qv8x/V9AH6/+A+9mtQuknZ5IOVpMpWMVQ8SxqamPE3OcwY7ft+IX6++GvkvhZ9h2LhJzP9hNUvmBpRcPeQKjHVV9wJjXRlP5eXkd56bq/1RwdDKKXl7e7N69Wr8/f1xcXFh4sSJZGVlERwcTP/+/TXy1q1bl3v37gEwY8YMvvjiC4YPH46zszP9+vUjISGBL7/8Ejc3Nzp16pRvp8LLly/j6+uLm5sbn376KVlZeT/Gw4cP061bN1xdXenXrx/Xr1/XqGNQUBD+/v40bdr0tU4iMjKSgQMH4urqip+fHwcPHgRg6dKl/PDDD4SFheHs7MyWLVteWUZwcDD9+vVj3rx5uLu7s2zZMkC1h33nzp1xc3Pj448/Jjo6GoCAgAAWLFigUcaYMWNYu3atuv7Phy5zc3MJCgqiXbt2eHh4MGHCBJKSVD/KTz75hDVrVCssx8XFUbduXTZu3AjAvXv3cHd3R6lUkpiYyKhRo3B1dcXd3Z2PPvqI3Df8gl4kmZ085C7pKJ45IgVK9F76+kiR0A1b2mPJWZLQRwczdDFEijl6ZFJ0/f1ZiSxOvc+l7FQyn70wmKnMxUgizZd3W2YCHnqmWEnzdsa8kZ1OnWc9LG1Zefpv+m3ey/6bUaTIVb27VLkCU/28cisb6JEqz+v56UgkPM2UE5uSRh3LPKdYkO11rPjrEr3X7mLv9bukZKmcYGqWHFODPG0zA31SsvK0X9y+OnDvKXo3qU0Nc1Oyc3I5cusB3rWLtz11WWBiWpm01BQA0lJSMDFVzV9mZ2dz8sghvLzba+Sv9p4T79Wui4WVNRKd4j9rr712m2EHT3M4Oo5UhepekqbIxkSvfEzDi54SEBYWxqpVqzh48CD//PMPwcHBWp83ceJETp06hZ6eHn379qVBgwacOnWKjh078tVXX2nk37VrF6tXr2b//v3cuXOHH374AYArV64wc+ZMAgMDOX36NH379uX//u//1DsfgmoILCgoiPDw8Ff2dBQKBaNHj6ZFixacOHGCWbNmMXXqVG7fvs348eMZNWoUnTt35sKFC/Tp0+e1bYuIiMDR0ZETJ04wZswYDhw4wMqVK1m+fDknT57ExcWFKVOmAODv709oaCjPt69KTk7mr7/+wtc3//L5P//8MwcOHOCXX37h2LFjVK5cmcDAQADc3Nw4c0Y1PHHmzBkcHR05e/YsAGfPnsXFxQWJRMLatWuxsbHh5MmT/PXXX0yePFnj5lUUmlKZrtjSEguiUQ2bRZOJFXk3SiXKZyEOoIcOMiTI0EEXHRTkkkZ2PiemDe31zZlkXI3+hjZcz1bNq/yTnU71l3o+f8mTkACeeprBFxezU2miq/2wGcAoj4b82r8jX3b05MS9WABO3n9IE7u84ApDXRmZimzS5Aouxj6itkVlIhOTufvkKYO3HOD43Rhm7TtVoO11jGnRhK1D/ZnfpSV/3VE90Jy4G0OTqnlbVBvqycjMziYtS8GFB/HUsaoCwObz15FIoHfTOgAkpGUQ+zSNARtCCY64xfyDZ0l6aU6kvNLYxZ0zx/8E4PTxIzRu5gpAYkI8D2OjGTugN6HBv7NsfiBPk5Ko/l4tEuIekpGeRk4JjFoMrf8ea3w8+Ny1IafjHgNwJv4xDc0rF3LmW0LMKcHAgQOxsbHBzMyMtm3bcu3aNa3Oa9++PQ0bNkRfX5/27dujr69P9+7dkUql+Pr65itnwIAB2NnZYWZmxpgxYwgJCQHg999/p2/fvjRp0gSpVEqPHj3Q1dXl4sWLGnW0s7PDwODVQzWXLl0iPT2dkSNHoqenR/PmzWnbtq1apyhYW1szcOBAZDIZBgYG/Prrr4wcORInJydkMhmjR4/m2rVrREdH4+rqikQiITxcNTa+d+9emjZtqt7j/kV+++03Jk2ahK2tLXp6eowbN469e/eSnZ2Nu7s74eHh5ObmcvbsWYYPH87586pJ4LNnz+Lu7g6odpRMSEggJiYGXV1dtX5xqI4hicjZwUNs0KcSMh4h5zop5AAhxLGLhxzlMS6oegbNqEwo8ewjAVfe/AfdWGZMbG4W36Te5z2pIZV1ZETlZPKXXNWD/C0jnns5mSxOvc/uTNXcj1Kp5E52Bk5SwzfS9HFy5EZCEn02htHM3gprYyOuxiXyW8RNAMY2b8TA3/ez4Mg5Rns2xNneiuD/+LK+Tzu8atgzt4NngTZtaF+3Otfjn9Bj9Q5cHGywMTHiSuwjNp9XjQ6Mb+lM/w0hzDtwmrFeqsi8z0KOExHziN5rd7HocDh2ppUIGdmDjQN96dm4FjN83DAzLJl5IKUyl+xbe1BmJpITuY/ctITCTyoC9Rs1QU/fgGE9O6Mj0cG2qgOrli7C2s6ejSGH+H7jVnx7fsh/ZwRgambG6Ckz+HTscEZ+2K1EAx1aV7XmVnIKgw+coolFFawMDbj+5CnBkVEABF25xbrrd9jwzx1+/PtmiekWhlKh0PqoaGjdF7WyyouyMTQ0JD4+XqvzXtzT3cDAAEtLS43P6emaUUV2dnbqv+3t7dU6MTExbN++nV9++UWdrlAoNOrx4rmvIj4+HltbW3Re6OLb29sTFxenVXtexNbWVuNzTEwM8+bN0ximUyqVxMXFUbVqVXx9fdm9ezdubm7s2rWLrl27FlhuTEwMY8eO1aijjo4Ojx8/plq1ahgZGXHt2jXOnTvH2LFj2bp1K7dv3+bs2bMMHDgQgI8//pjly5czbJhqE7e+ffsycuTIIrfxRaRI8EEz2soSPSyf9Zi6YpvvHHsM6FaAvcjaEglDjew1bI5SAxyf9ZiWVq6T7xyJRFLkMPAX0ZXqsMS/pYbtfRtz3rdRRbJ51bDHq4Z9QaeyyLeFVrbXaS/v5a1ha2BnSQM71e+npZNDvvDu258Pf2V5U9q6aq2tDRKJDrJanUq0zJd5OQz8ZWczesoM9d9OdeqxauvuEq+Dro4O85trhuPXq2JKvWdBJSMb1GJkg+JvAV5kKmAPSFuKNUBqaGhIZmZeFFRCQvGflmJjY9V/x8TEYG2tGraws7Nj9OjRjBkz5pXnatMTsLa25uHDh+Tm5qpv+rGxsdSoUaPIdX1Z73kdX+VsunTpwrBhwxg5ciQRERF8//33BeaztbVl3rx5uLi4FJju5ubG3r17USgU2NjY4Obmxo4dO0hOTqZ+fVWYrLGxMTNmzGDGjBncvHmTQYMG0ahRI5o3b17kdgoEgnLGO+yUijUjWK9ePW7evMm1a9fIyspST/YXh02bNvHw4UOSkpJYuXKles6lT58+/Prrr1y6dAmlUkl6ejpHjhwhNTW1SOU3btwYQ0NDVq1ahUKh4PTp0xw6dKjAuZ2i0q9fP4KCgrh5U9WNT0lJISwsTJ3+/vvvY25uzqxZs/Dy8sLUtOCXKPv378+SJUvUQRKJiYkcOHBAne7u7s4vv/yCq6vq6dfDw4MNGzbg4uKCVKoKADh8+DD37t1DqVRibGyMVCrV6HkJBIKKizI3V+ujolGsnlLNmjUZO3YsQ4YMwcDAgMmTJ/Pbb78Vq0LPexPx8fH4+Pioe0aNGjVizpw5BAYGcu/ePQwMDGjWrJn6xqwtenp6rFixgtmzZ7Ny5UpsbGxYuHAhTk5OhZ9cCO3btyctLY3JkycTHR2NiYkJH3zwAZ07d1bn8fPzY+nSpSxZsuSV5QwaNAilUqm+DhYWFvj6+tKuXTtA1VNKS0vDzc0NABcXFzIzMzWuxb1795gzZw6JiYmYmprSv3//cv8elEAg0JJ3uKckUSrf4X11BUVmtKRGmej+qLzLCrMyeDMeGJN0nbufDC4T7RoL1hM9e1SZaFf930r0nIeVibb8guq1hovRSYXkLB2aVjXjcv/ij468CY02hxa7jIzdBQ/9F4Rhl7HF1nublI+ge4FAIBBozzvcU3onnVJMTAx+fn4FpoWEhGBvX3DE1MsEBASwa9eufHZ/f3/1e0MCgUDw1hFOqWJhb2/PhQsXil1OYGCgcD4CgaDcocwRTkkgEAgE5YUKGFWnLcIpCQQCQUVDDN8JBAKBoLyQm13xlg/SFuGUBAKBoIKhzBHDdwKBQCAoJ7zLTkm8PCsQCAQVjOTVs7TOW/njuaVYk5JH9JQEGuTcvVh4plJAWqMpqRvLJvzeeEAAUbM+LhNtx7mriZn76kWGSxP7WSvKdEUFoExXlLjYq2OZaDfdtrfYZZRkT+no0aN8+eWX5Obm0qdPn3y7CcjlcqZPn86VK1cwMzNj8eLFODioVqhfuXIlW7duRUdHh1mzZtGyZcuCJIqEWKFTIBAIKhg5coXWx2vLyckhMDCQVatWERISwu7du7l165ZGni1btmBqasr+/fsZMmQIixYtAuDWrVuEhIQQEhLCqlWrmD17Njkl8P6UcEoCgUBQwSipVcIjIiKoXr06jo6O6Onp4efnx8GDBzXyHDp0iB49egDQsWNHTp48iVKp5ODBg/j5+aGnp4ejoyPVq1cnIiKi2G0TTkkgEAgqGMqcXK2P1xEXF6exWamNjU2+DU/j4uLUG6jKZDJMTEx48uSJVue+CWJOSSAQCCoYJTWnVFCc28ubl74qjzbnvgmipyQQCAQVjJIavrO1teXhw4fqz3Fxcerdvl/M83xH8OzsbFJSUjAzM9Pq3DdBOCWBQCCoYOTm5Gp9vI5GjRpx9+5doqKikMvlhISE4O3trZHH29ubP/74A4C9e/fi6emJRCLB29ubkJAQ5HI5UVFR3L17l8aNGxe7bWL4TiAQCCoYufLsEilHJpMREBDA8OHDycnJoVevXtSuXZvvvvuOhg0b4uPjQ+/evZk2bRrt27encuXKLF68GIDatWvTuXNnfH19kUqlBAQEIJVKi1+nYpcgEAgEgrdKYcNyRaF169a0bt1awzZhwgT13/r6+ixdurTAc8eMGcOYMSX7np1wSgKBQFDBeJeXGXprc0o7d+5k2LCyeXv730bdunW5d+9eqZQ9ec4iWvcZxqTZCzXsY2bOpWXvIbTqM5SIazcAWPv7dmq19GPQxM/eWG/GL2F0CFzN9J9DNexXo+JoH7iadrNX8ff9vMnWDLkCp7Ffc/jvSACGLN9C57lr8f7iJz6YuaJI2tm5uUzY8Sc91+/m+xOX8qX/dTeG7ut20feXUGKfpgEwJvgQfTaE0nP9biIfJ7/SVqh2Ti7/3XqQ7j9tZ/nR/BtWHr8djX/QH/Res5OY5FQAPt11lEZfrWNT+DV1vq0Xb+Af9AcD1ocQn5JepPYDLPpiJsN6dmZhwIx8aZkZGbRzrsupY0cASH7yhOmjhzLyw66sWrqoyFraolSko/hnB4pLP6NUls7NOTs3l1lnLzP0zzOs+edOvvR5F67Sdvdhgu88eK2ttCipkPDyyFtzSl27dmXNmjVvS+5fw8CBA9myZctb0Tr/9zXS0zP4c8sa5AoFZy9dUadNHzOUY1vXsXrhF8xZuhIA/3at2bOhaI7gRS7eiSEtS8G+gI+R5+RwLjJanTZn6yHWju3Nz//9kDlbD6ntaw+F875DXgTQunF9CJs1lIl+XnRyrlMk/f037lPb0ozgwV04GxVPfKrmTX3p8Yv80r8TM9q6qp3W0m5t2DLQl+ltXFh79sorbYWx7/pdaltVYfuI7py5F5vPoSw5co7Ng/2Y2d5D7bQmtnFhVkdPdZ7snFzWn7nC9uHd+KSdO98fK9puzNcuXyIjPZ01wWEoFHKuXDyvkR68cT1OdeurP69cvIAxUz8l6PedDB8/tUhaRUKqh8ypExIjq1KT+DM2gZomlVjb2p2Lj5/wKDNLI31EPScmNapTqK20yM3N1fqoaBTJKWVnl8zk2rvAv/FanDofgU8LDwB8Wnhw+kLe29s1HasCoKuri1RHNdlpaV4FmezNR4jP3IqibYP3AGjbwImzkVHqtCdpGThYVMbe3JSn6aobhjw7m/DIaJrXqZavrN3nrtHVtX4+++s4Hx2PVw17AD6obsulmEfq2D5XaAAAIABJREFUtAxFNgYyGcb6ujhXtebmI9UacrpS1U8qTZ5NPWvzV9oK41xUHC2dVNf0g/eqcjE6Pk9brsBQJsVYX49mjjbcSHgCgI1JJY0ynmRkYmdaCamODu/bWnD+QTxFIeLcGTxaquYaPLzaEHE+XJ2mkMu5fCEcZ7c8Jxj5zzVWL/uWEX38uXTuTJG0ioJER4ZEpl9q5QNEJCbhYW0BgKuVOVeeaPZwrQzz6xdkKy3+1T0lb29vgoKC8Pf3p2nTpsTExPDf//4XT09PvL29+fnnnwFVjHrjxo1JSspb4PHq1at4eHigUCgIDg6mf//+6rTIyEiGDh2Ku7s7HTt2JDRUNTwTFRWFq6ur2sN/9tlnNG/eXH3e1KlTWbduHQDBwcH4+Pjg7OyMt7c3O3fufG1bgoOD6devH3PmzMHFxYVOnTpx8uRJdXpKSgozZ87Ey8uLli1bsnjxYvVaTs/PnTdvHu7u7ixbtqxQnXnz5uHq6oqPjw/nz58nODiY1q1b07x5c3WI5XPd6dOn4+npSdu2bfnhhx/U7X9+3RYsWICbmxve3t78+eefACxevJjw8HACAwNxdnYmMDBvQdMTJ07QoUMH3NzcmD17doEvuhWVpKcpmDy78ZmaGPPk6dN8eT5buJRxQ/rns78JyemZmDz7oZsa6ZOUlqlOy83Na0/us7b98ucF+nk1yVdOdk4OV6LiaFrTvmj6mXKM9XUBMNHXI/mFp+XkjCx1GkDOs/rIc3LouX43AftO0qyq1StthfE0MwsTfT0ATPX1SM7I007KzML4WRpoXosXMTcyIOpJCulyBSfuRJOUnllgvleR8jSZSsYmABibmvI0Oe+3veP3jfj16quR/1L4GYaNm8T8H1azZG5AkbTKGymKbCrpqh6ojGUynpZQtFtJkatQaH1UNLTqKYWEhBAUFMSZM2cYN24cdevW5ejRo6xfv57169dz7NgxbGxsaNq0Kfv27VOft2vXLjp27Iiurq5Geenp6QwbNowuXbpw4sQJvv32W2bPns3NmzdxdHTE2NiYq1evAhAeHo6RkRGRkZHqz+7u7qSnpzN37lx++uknLly4wK+//kr9+oU/CUdERODo6MipU6cYP34848aNUzvSTz75BJlMxr59+9i+fTt//fWXxtDY83NPnDhRaMRJREQEdevW5fTp03Tp0oXJkydz+fJl9u/fz9dff01gYCBpaap5iDlz5pCSksKBAwfYsGEDO3bsYNu2bRpl1axZk1OnTjF8+HA+++wzlEolkyZNwtXVlYCAAC5cuEBAQN6N4MiRI2zdupUdO3YQFhbGsWPHCr02hWFmakJKiqrOKalpmJmYaKR/t2Yj9Wu9h5ebc7G1ACobGZDy7Gb8NCOLykYG6jQdnbw3x3UkErJzcjhwOZIOTWrnK+fo1bu0rF9Da90fT17mww2h7Ltxn9Qs1Y86Va7A1CDvSbiyob467XkdAPSkUoIHd2FFT2+++fPCK22vYsXxi/RevYM91+6SkiUHICVLTuUXtM0M9El9lqbSLrgsqY4Ok9q4MHBDKAdu3Oc9SzOtrwGAiWll0lJTAEhLScHEtDKgGiU4eeQQXt7tNfJXe8+J92rXxcLKGolOxXwFcv2NOww/epbDMfGkKVSOKC07GxPd8hUT9q/uKYFq3sLOzo6bN2+SmJjIuHHj1Ivwffjhh+pejr+/P7t37wZUS1OEhobi7++fr7wjR45QtWpVevXqhUwmo0GDBnTs2JG9e1VLuru5uXH27FkSEhIA1SKAZ86cISoqitTUVOrVq6eqvI4ON2/eJDMzE2tra2rXzn9Dehlzc3MGDx6Mrq4uvr6+1KxZkyNHjvDo0SOOHj3KzJkzMTIywsLCgiFDhhASEqI+19ramoEDByKTyTAwMHiNCjg4ONCrVy+kUim+vr7ExsYyduxY9PT08PLyQk9Pj/v375OTk0NoaChTpkzB2NgYBwcHhg4dqtHrs7e358MPP0QqldKjRw8SEhJ49OjRa9RhxIgRmJqaYm9vj4eHB9evXy/02hSGZ7PGHDqhGpY5+NdpPJzzXpTbd/QkJ89d4rP/jii2znPcazly5MptAI78fRu3Wg7qtCqVDIl+nEzsk6eYGukTn5xG9ONkeizYwG9/RfDFbwd4kpYBwK7wa3QpwtDd6OaN+H2gL191/oDjd2MAOHE3liZ2luo8hroyMrOzSZMruBidQG1LM5RKJYpnNwETfV0MdKUF2l7HGK+mbP24Gwu6tuL4szm0E3diaOKQ18My1NMlIzuHtCwFFx7EUdu6yivL61C/Bts+7kan+jXwqG77ynwF0djFnTPHVb3y08eP0LiZKwCJCfE8jI1m7IDehAb/zrL5gTxNSqL6e7VIiHtIRnoaORV0eHtwnZqsauXGLOf3OZ3wGIDwhEQaVKlcxjXT5F12Slq5/+eL8UVHRxMfH4+rq6s6LScnR/25Y8eOzJkzh7i4OO7du4dEItHI+5zo6GgiIiLyldO1a1cA3N3dOXjwIDY2Nri5ueHh4cGOHTvQ19fH1dUVHR0djIyMWLx4MWvWrOGzzz6jWbNmfPLJJzg5Ob22LTY2NhrrM9nb2xMfH09MTAzZ2dl4eXmp03Jzc9VtBzQWHywMCwsL9d/PHZilZd5NTV9fn7S0NJ48eYJCocDePm9oyd7eXmNhwxfPMzQ0BFS9zddhZfXCTczQUN0rKw7NGtbHQF+P1n2G0aR+HapVtWXe8lXMHDeciV8swNSkEj79R1D3vRqsmDeL3QePsvDHtdy+94A+Y6awZcU3RdJrWtMeA10ZHQJX06i6LY4Wlfl6x59M69aaz3q1Zcj3W1EqlXw7xA97c1P+nDMKgHnbDtO8bjWqVDJEqVRy5lYU3wz2LXJ729WuRtj1o/RcvxvvWo7YmBhx5eFjLj98TL+mdRjXogkDNu1BXyblW/9WZOXkMGjzPiQSkCBhTqfmBdq0oX296oQG36b7T9vxrlMNG5NK/B37iMsxCfR3qc/41s3ot343+jIp3/VsC8B3R86xPeIWSiAuJY1JbV2Ztfs4/8Qn4mBmwjz/ou11U79RE/T0DRjWszN16jfEtqoDq5YuYvj4qWwMUQWX/PjNfJq6e2JqZsboKTP4dOxwsjIzGTlpepG0ioJSmUtO5D6UmYnkRO5Dx84FnUolG/TQys6Kg+fiGPrnGbxsLLEy1OefpKdcTXpKjxoOrLp+m7CoWJRAQmYWo+o7FWgrLQpbqaEio5VTen4Tt7Ozw8HBQWOI7kVMTU1p0aIFYWFh3L59Gz8/vwIX6LOzs8PNzY21a9cWWI6bmxsLFy7E1tYWNzc3XFxc+N///oe+vj5ubm7qfC1btqRly5ZkZmayZMkSPv/8czZt2vTatsTFxaFUKtX1io2NxdvbG1tbW/T09Dh16tQrJ+dLYrHBl6lSpQq6urrExMRQq1YtdZ1sbGxKXKskWPw/zZvNzHHDAbh6aHu+vF18WtHFp1Wx9BYO0nQm07qpJt4bVrNlf0DBG/PN7NVW/bdEIuGvL9/s5T5dqQ5Lu7fRsDWwtaCBreqBo2XNqrSsWVUj/feB+Z1fQbbCtaUs79NOw9bQzpKGz3prrZwcaOXkoJE+oY0LE9q4aNjmdvGiOEwPnK/x+eWoutFT8kLFnerUY9XW3cXS0waJRAdZrU6lqqGro8M8N80lc+qamVLXzBSA4fXeY3i99zTSC7KVFiX58mx5o0gDv40bN8bY2JigoCAyMzPJycnhxo0bGnto+Pv7s2PHDvbu3Vvg0B1AmzZtuHv3Ltu3b0ehUKBQKIiIiFDPG9WoUQN9fX127tyJm5sbxsbGWFhYsHfvXrVTevToEQcPHiQ9PR09PT2MjIy0WuIiMTGRn3/+GYVCQVhYGJGRkbRu3Rpra2tatGjB/PnzSU1NJTc3l/v373PmTOlFEQFIpVI6derE4sWLSU1NJTo6mrVr16p7jYVhaWlJVFRU4RkFAsE7Q648R+ujolEkpySVSlmxYgXXr1/Hx8cHT09PZs2aRWpqqjqPt7c3d+/exdLSUj338zLGxsasXr2a0NBQWrZsiZeXF4sWLUIuz5u8dXd3x8zMTD2s5e7ujlKp5P333wdUQ2tr166lZcuWuLu7c/bsWf73v/8V2obGjRtz7949PD09WbJkCUuXLqVKFdWY/MKFC1EoFPj6+uLm5sb48ePV81qlyeeff46hoSHt2rXjo48+okuXLvTq1UurcwcNGqR21nPnzi3lmgoEgvJASS3IWh6RKEsiVriCEBwczJYtW9i8eXNZV6XcknP3YpnoSms0JXVjYOEZSwHjAQFEzSp4KLC0cZy7mpi5Jbt2mLbYz1rBxeikwjOWAk2rqiIB9ZzLZpUX+YU1XOzVsUy0m27bW+wyLvfXfki40ebQwjOVI8pXnKNAIBAICiU3593tS7xzTikgIIBdu3blsz9/+fdt6Lz4EqtAIBCUNBUx1Ftb3jmnFBgY+Fqn0LNnz7eiIxAIBKWFUvSUBAKBQFBeyKmAUXXaIpySQCAQVDBetd7hu4BwSgKBQFDBEMN3AoFAICg3VMT3j7RFOCWBQCCoYIiekkAgEAjKDe+yU/pXreggEAgE7wJHPT7QOm+r0ydKsSYlj+gpCTR4smJG4ZlKgSpj5pO2uWzW7qvUfxZJQTPLRNts5DziF00oE23rqd8VabmakuT50jdludRPWS5xVFzEig4CgUAgKDeIFR0EAoFAUG54l+eUhFMSCASCCoYYvhMIBAJBuSFHIZYZEggEAkE5QQzfCQQCgaDcIAIdBAKBQFBuEHNKAoFAICg3iOE7gUAgEJQbct/SQjxJSUlMmjSJ6OhoqlatypIlS6hcubJGnmvXrvHFF1+QmpqKjo4OY8aMwddX9VL2jBkzOHPmDCYmJgDMnz+f+vXrv1bznXRKw4cPx8/Pjx49ehAcHMyWLVvYvHlzoectW7aMe/fusWjRogLT/fz8CAgIwMPDQyNvTEwMfn5+hIeHI5VKS7o5Zc7MrQe5eO8hjR1tmP9hO7X9akwCUzbvRamEb/p1oIGDNZM27eFazCMkEljUV2VbEHKcg1fvAPCZf0ta16uhtfYnG0I5fzuGpjXs+Hqwn9p+JSqOiat3ogSWDPOnYTVbRv0YzD/RCRjoyRjm7cqHLZowb9shDly6BcDnH/rQtqGT9u3+/QAX7sXSpJot8/u2z2t3dAKTN+5BiZJvPupEQwdrJv4SxrWYBCRIWPRRRxo6WPPpb/u5/CAegL8fxHN38aRCNbNzcpnw+37uJz6lff2ajPd21Ug/diuKr8JOoq8r5ft+HbA3MynQNmJDKAmp6eTkKlncpx21rKvks1lrfSUgOzeXgNOXiU7LoJW9FR+/r3kd54ZfYX9ULOMb16WXk2MRSn695hfnrhCdnkFLWyuG1a2pkT7vwlX2R8fx3wa16VnT4ZW2kkSpSCf79n7ITEbW+D9IJDolrqEN8re0n1JQUBDNmzdn5MiRBAUFERQUxLRp0zTyGBgYsGDBAmrUqEFcXBy9evXCy8sLU1NTAKZPn06nTp201iybK1rKrFq1ih49epR4uSEhIXh4eOSz29vbc+HCBbVDGjhwIFu2bCm23tSpU/Hy8qJZs2Z07NgxX5kZGRl88cUXeHh44OLiwoABA9Rpy5Yto0GDBjg7O6uPqKioItfh0v2HpGcpCJ0yAEVODufvxqrTvtp1jJ+GdmXN8G7M230MgIkdPNkz9T8sH+jLgtC/AOjn0ZB90wayZWwfFj6zacPFOzGkZSrY/7/hyLNzOBf5QJ02Z8tB1v73Q34e35c5Ww6q7avH9mbP5x/zYYsmAHzU0plDgSMJ/mQgXwUfLnK7w6YNRJ6dw/m7Meq0eTuPsmp4N9aO6MG8nUcBmNSpOXunD+L7wX4s3H1cdX36tmf3lAHM6+NDBy2d4d6rt6ltbc6usX04fTeG+KdpGunfHjjD7yO6M8u3BUsPhb/S9sNHHdk+pjefdmrOquMXX2nTliPR8dQ0NWZ9O08uPHrCo4wsjfRRDZyY3KRekcosjD9jE6hpUom1rd25+PgJjzI1NUfUc2JSozqF2koUqR4yp05IjKxKT0MLcpRKrY/icPDgQbp37w5A9+7dOXDgQL48NWvWpEaNGgDY2Nhgbm5OYmLiG2u+k07pXWHUqFEcOnSI8+fP88MPP7BkyRL+/vtvdfrnn39OcnIyYWFhnDlzhk8//VTj/M6dO3PhwgX14ehY9CfYs3diaF2vOgCt69Ug/E7ezflJWiYO5qbYm5nw9NlNqrqlGQC6UilSHYmGTU8mRYJEa+3TN6No2+g9ANo2cuLMrTyn9CQ1AweLytibm5KcngmABBi5Yht9vv6F+wlJANSwrgKAvq6sSNpnIqNpXb8GAG3q1yD89ovtzlC1u0pB7dZRt/s5uy/ewN+5rla64fce0qq26v/k5eTAhQdx6rR0uQJDXRnGBnq4VLPln/jEAm2qeqgekNLkCt63s3ylTVsuPU7C09YCADdrC/5OTNJItzI0KFJ52hCRmISHtUrT1cqcK0+SX9LUz3dOQbaSRKIjQyIrXQ1tyFFqfxSHx48fY22t6lNbW1sX6mwiIiJQKBRUq1ZNbVu8eDH+/v7MmzcPuVxeqGaZO6WgoCDatWuHs7Mzvr6+7N+/H7lcjqurKzdu3FDnS0xMpHHjxjx+/Jjk5GRGjRqFp6cnbm5ujBo1iocPH6rzvq6nMnfuXFq3bk2zZs3o2bMn4eHhGulyuZyJEyfi7OxMjx49uH79ujrN29ubEyfyr7j74MED6tatS3Z2NosXLyY8PJzAwECcnZ0JDAxk9uzZzJ8/X+Oc0aNHs27dutdem9q1a6OnpweARCJBIpFw//59AG7fvs2hQ4eYM2cO5ubmSKVSGjZs+Nry3oTk9ExMDFQ/QlNDfZIyMtVpL45rvzzGHbjjT0a10Rx6WhDyF0NaNi2Cdgamz252lQ0NSErLeK32vP904uDskUzyb8mnG8M0ypq37RAf+2jW57XaGZmYGKiuvamhPknpr2j3S8Mos7cfYeRLQ24Hr9zGp+F7WupmqXVNDPRITs/SSDPW19PQLsgGIM/Owf/7Lczc/icu1W1fadOWFLkCY13VaL+xroyn8uwinf8mpCiyqfRcU/Z2NCsKJdlTGjJkCF26dMl3FNQreh3x8fFMmzaNr776Ch0dlWuZPHkye/bsYdu2bSQnJxMUFFRoOWXulBwdHdm4cSPnzp1j3LhxTJs2jaSkJNq3b09ISIg6X1hYGG5ublhYWJCbm0vPnj05fPgwhw8fRl9fn8DAQK30GjVqxPbt2zlz5gxdunRhwoQJZGXl/fAPHjxIp06d1On/93//h0Kh0Lo9kyZNwtXVlYCAAC5cuEBAQAA9evRg9+7d5Oaq3i1ITEzk5MmTdOnSpdDyvvjiC5o0aULnzp2xsrKidevWgOqJpGrVqixduhQPDw/8/f3Zu3evxrmHDx/G3d0dPz8/Nm3apHUbXqSykQEpz4ZNUjKyqPzCk6iORFLg3ysOnaWurQWetfLG9HdfvEFiWga93d4vgrYhT585wacZmVQ2ynsaL0jb3NgIgA/qVSc+KVWdvvPsVRJTMtRDelppGxqQkql6qkvJkFPZ6BXtfqFXtOLAGerZWdK8Vl6PNDIuETszE4z0dF+r9/2Rc/RYsY09VyLVuqmZckxfuN6VDfVJzcp70tSRSAq0gapXumtsH1YN9GXB3lOvtBXG2mu3GXbwNIej40hVqJxCmiIbE73Sm45ef+MOw4+e5XBMPGnPNbOzMdF9J6fA34iS7CmtW7eO3bt35zvatWuHhYUF8fGqedH4+HjMzc0LLCM1NZVRo0YxceJEmjbNe/C0trZGIpGgp6dHz549uXz5cqH1KXOn1LlzZ2xsbNDR0cHX15fq1asTERGBv78/u3fvVufbtWsX/v7+AFSpUoWOHTtiaGiIsbExY8aM4ezZs1rpdevWjSpVqiCTyRg2bBhyuZw7d+6o0xs0aECnTp3Q1dVl6NChyOVyLl26VKw2Nm7cGBMTE06ePAlAaGgo7u7uWFoWPoTyxRdfcP78eTZu3Ej79u3VPaeHDx9y48YNTExMOHbsGJ9//jkzZswgMjISUF3X0NBQTp48yZw5c/jhhx80rqe2uNW05+g/9wD48/o9XGvaq9OqVDIg+slTYpNS1DfPQ1fvcOZ2NFM75+33cuVBPKv/PM/XLwQLaINHbUeO/H0bgMN/38b9hZt9FWNDoh8nE/vkqdpZPX3Wm7kRk0DlSirb3/cfErTvNN8OLfwB4EXcnary5/W7ABy5fgfXmlVfaLdhAe2+rWq3bwuNcnZfvEGXpoXPcYxt48IfY3rxdS9vjt1Szf0dj3yAs6ONOo+Rni4ZimzSsuScv/+QOjbmBdqUSiWKHNUyNCb6ehjoygq0acPQ+u+xxseDz10bcjruMQBn4h/T0LxyIWe+OYPr1GRVKzdmOb/P6QSVZnhCIg2qlJ5mReNtzSl5e3uzfft2ALZv346Pj0++PHK5nLFjx9KtWzc6d+6skfbcoSmVSg4cOEDt2rUL1SzzR4/t27ezdu1aoqOjAUhPT+fJkyd4e3uTlZXFpUuXsLS05Pr167Rrp4r8ysjI4KuvvuLYsWMkJ6vGmdPS0sjJySk0+m3NmjVs2bKF+Ph4JBIJqampPHnyRJ1ua5s3rKGjo4ONjY36whaHHj16sHPnTlq0aMHOnTsZNGiQ1udKpVJcXV3ZuXMnmzdvZtCgQRgYGKCrq8uYMWOQyWS4u7vj4eHB8ePHcXJyolatWurzmzVrxqBBg9i7d69WvbMXaVLNFn2ZDN9vNtLQwRqHKqZ8E3aCKZ0/YIafF8PX7ESpRO1wZvx+ABMDPbou2UwtG3MWf9SJgD8OE5+SRu/lv2NqqM/G0b200m5a0x4DXRntZ6+iUTVbHC0rs3D7EaZ3b8Os3t4MWfY7SuDbIao2ffz9VtUQn0TCkmGqB5jPNu4l/mkq3eavp7KRAb9NGfAaRc12G+jK6Pz1BlW7zU1ZFPoXU31bMMO/JR//tAMlShb1V+0H9Mmv+zEx0MP/203UsjFnyX9UP869EbfY9H/atRegw/s12f1bJP7fb8GnXg1sTCvxd3QCl6LjGeDegInebvQJ2o6+rpRlfTsA5LNlZefQf9UOkIAECfN7tCnQVhRaV7XmwOkIBh84hZedFVaGBlx/8pSricn0dHIk6Motwu7FokRJQkYmoxsWfvMpjFZ2Vhw8F8fQP8/gZWOJlaE+/yQ95WrSU3rUcGDV9duERcWiBBIysxhV36lAW0miVOaSE7kPZWYiOZH70LFzQafS2w96kL+lBR1GjhzJxIkT2bp1K3Z2dnz33XcAXL58mV9//ZUvv/ySsLAwwsPDSUpK4o8//gDyQr+nTp3KkydPUCqV1KtXj9mzZxeqWaZOKTo6mlmzZrFu3TqcnZ2RSqV069YNUDmETp06sXv3biwtLWnTpg3GxsaAyrHcuXOH33//HSsrK65du0b37t0pbBPd8PBwfvrpJ9atW0ft2rXR0dHBzc1N47wX56Zyc3OJi4tTT/QVh65du9KlSxeuX79OZGSk2sEWhZycHPWcUt262k2cv8ibbjL8Yhg4wJRnvaAGDtaETfmPRtqZL0bkO3/bf/u+kS6gEQYOML17GwAaVrNl/0taW6Zp1gVgx6eD31h7/ks9u+e9oIYO1uyZPlAj7WzgqALLCC2gTq9DVyplxUeaG981rGpFw6qqG1/rOtVoXaeaRnpBtj/G5HeEBdm0rpeODvOba84H1qtiSr0qqrDfkQ1qMbJBrYJOLZbmPLfGGra6ZqbUNVNpDq/3HsPrac7VFWQrSSQSHWS1tA9vLi2K2wPSlipVqrB+/fp89kaNGtGoUSNANfr0/L79Mj///HORNct0+C4jIwOJRKIep9y2bRs3b95Up/v7+xMWFsauXbs0nvDT0tLQ19fH1NSUpKQkli9frpVeWloaUqkUc3NzsrOzWb58OampqRp5rly5wr59+8jOzmb9+vXo6enRpIn2cxEAlpaW+cKvbW1tadSoEdOmTaNDhw4YGLw+Wunx48eEhISoe4DHjh0jJCQET09PAFxdXbGzs2PlypVkZ2dz7tw5Tp8+jZeXFwAHDhwgOTkZpVJJREQEGzZsKLDrLRAIKh5vK/quLChTp1SrVi2GDRtGv379+OCDD7hx4wbNmjVTpzdp0gRDQ0Pi4+Np1aqV2j548GCysrLw9PSkb9++tGzZUis9Ly8vWrVqRceOHfH29kZfXx87OzuNPD4+PoSGhuLm5saOHTtYtmwZurqvn6R+medDZW5ubsydm7fFd/fu3blx48YrnypeRCKRsHnzZlq3bo2bmxsLFy5k5syZ6h6Wrq4uP/zwA0ePHsXV1ZXPP/+chQsX4uSkGq4IDQ2lQ4cONGvWjOnTpzNixIhSeXdLIBC8fd7WnFJZIFG+6ZiOoMicPXuWadOmcejQIXXIZHnjyYoZZaJbZcx80jbPLTxjKVCp/yySgmaWibbZyHnEL5pQJtrWU7/jcn/fMtFutDkUgIu9OhaSs3Roum0ves7DykRbfmFNscv42lj7F4Snpd4oPFM5oswDHf4tKBQKfv75Z3r37l1uHZJAIKgYvK1lhsoC4ZTeApGRkfTq1Yt69erx1Vdfqe3P18wriJCQEOzt7QtMEwgE/24q4rCctgin9BZwcnLi4sX8a409XzNPIBAIisK7u8WfcEoCgUBQ4RA9JYFAIBCUGypiqLe2CKckEAgEFQzRUxIIBAJBuUFE3wkEAoGg3CCG7wQCgUBQbniXh+/Eig4CgUAgKDeIpQUEAoFAUG4QTkkgEAgE5QbhlAQCgUBQbhBOSSAQCATlBuGUBAKBQFBuEE5JIBAIBOUG4ZQEAoFAUG4QTkkgEAgE5QbhlAQCgUBQbhDLDAkExSA2Npa4uDiaNm1a1lUZ/V3vAAAgAElEQVQRlAIPHjzAwcFB/Tk0NJQ9e/YA4OPjQ7du3cqqau8swikJBG9ATEwMkydP5vr160gkEi5cuMCePXs4duwYX375Zalqr127Fk9PT+rXr8/FixeZOHEiUqmURYsW4ezsXKraBXHq1CmkUilubm6lrnX8+HGuXbtGenq6hn3ChAmlote1a1fOnz8PwObNm/n+++8ZNGgQEomEb775htTUVAYMGFAq2v9WhFMSFJnWrVsjkUgKzXfkyJF3Uh8gICCANm3asGnTJjw8PABo0aIFCxYsKDXN56xbt47evXsD8M033zBkyBAqVarEvHnz2LJlS6nr/+c//2HSpEm4uLgQFBTEunXrkEqlDBgwgNGjR5eabmBgIGFhYXh4eGBoaFhqOi/y4tKgmzZtYtmyZWrH7+HhwYwZM4RTKmGEUxIUma+//lr99+XLl9m+fTsDBw7E3t6emJgYfvnlF7p37/7O6j/XDQoKQkdHR+0gTUxMSElJKVVdgJSUFExMTEhNTeWff/5RO4W34RABbt68qR6u3LJlCxs2bMDIyIj+/fuXqlMKCQlh+/bt2NnZlZrGy7z48BMfH68xTNu4cWMePnz41uryb0E4JUGRcXd3V/8dGBjI6tWrsbGxUdtatWrF8OHDGTZs2DupD2BhYcG9e/eoWbOm2nbr1q23csO0s7Pj/Pnz3Lp1C1dXV6RSKampqUil0lLXBsjNzUUikXD//n2USiVOTk4AJCcnl6qumZkZJiYmparxMnK5nOnTpwOqdj969AgrKysAnj59iq6u7lutz78B4ZQExSI+Ph4jIyMNm5GREXFxce+0/rBhwxg9ejQjR44kOzub3bt3s3LlSkaMGFGqugDTp09n/Pjx6OnpsXTpUgAOHz5Mo0aNSl0bwMXFhcDAQBISEmjfvj0A9+/fp0qVKiWuFRUVpf576NChTJ06lVGjRmFpaamRz9HRscS1AY2e3+DBg3n69KnaKZ09exYvL69S0f03I/ZTEhSLGTNm8ODBA0aPHo2dnR2xsbGsXLkSe3v7tzKc9Fx/zJgx2NravlX9AwcO8NtvvxETE4OdnR39+vWjXbt2par5KhQKBRKJBJms9J8znzx5wtq1a5HJZAwfPhwjIyOOHDnC3bt3GTJkSIlq1atXD4lEwutuUxKJhGvXrpWorqDsEE5JUCyysrJYvnw5YWFhxMfHY21tTefOnRk3bhz6+vpvRX/ZsmXs2bOH+Ph4rKys1PoGBgalrl8WuLu7c+bM/7d372FR1fkfwN9cRERFFOQekrQrlkk4DOCqq6CAwCCkImaItbiGlFlWluQNS1t0XTTNa6KZtzbL24CyJljogzAgiq5RcdGIO4ohCA7MnN8f/GaWATGp+Z7hMJ/X8/g8s2d45n3Waj6cc77fzye70/GxY8ciMzNTB2ekP4qLi3Hx4kUAwIQJE+Ds7KzbE+qFqCiRbpPJZOrlv4/6Ehw7dixfp8S7Dz/8EEFBQRgzZoz62OXLl3H69Gm8//77TLPd3d2Rl5encaylpQXjx49HVlYW02ygbdWZh4cHxGIxPD09MXLkyMdaDflHffjhh1i+fHmn42vXrmX2dz537lwsW7YMTz/9NP7zn//g3XffVa+2lMlkWL9+PSZPnswkW19RUSLdJpFIIJVKAQC+vr7q2yuqLybV63PnzjHJ7wlF0dvbG9999x1MTEzUx+RyOSZOnMjsamXOnDkwMDDAlStXOm3WraysxJ/+9Cfs2LGDSXZ7t27dQk5ODmQyGbKzs3Hv3j2IRCKIxWJER0czyx0zZox6z1B7Xl5ezIqxWCxGdnY2DAwMMG3aNKxYsUL9715ubi5WrVql/m+BaActdCDd1v4/wrS0NN7z4+Pj1efQ1W/ILIui6vM7/j6nUCigVCqZZYaHh4PjOFy7dk29T0l1LpaWlvD29maW3d6wYcMwbNgwzJgxAyUlJTh+/DgOHDiACxcuMClKR48eBdD296t6rVJaWgoLCwutZ6oYGRnh119/hYWFBaqrqzU2Jz/33HMoKytjlq2v6EqJ9HqVlZWwtbXV6mcuWrQIjo6OeOedd2BoaAilUol//vOfuHXrFj755BOtZnVUVFSkXoatC4cPH4ZMJsPly5dhbW0NDw8PeHl5QSQSYcCAAVrPmzt3LoC2KxORSKQ+bmBgACsrK0RFRTFr87R69Wrcu3cPa9aswccffwxzc3PExsaC4zjs3LkT3377LY4cOcIkW19RUSK9Xle3ff6IyspKvPLKK6ipqYG9vT0qKiowdOhQ7NixQ+sF8GH4brfTnqurK5ycnDB//nxMmjQJ1tbWzDMBIDExEW+++SYvWSrNzc1Yvnw5zp8/D3t7e/z444/qvUn29vbYtm2bTn9B6I2oKJFe72ELA7RBqVTi6tWrqKyshJ2dHUaPHg1DQ/aN9x/Vbuejjz5inl9VVQWZTAaZTIbc3Fy0tLRALBZDLBbz0qD09u3bnYoxq31KKsXFxcjPz0dVVRX69u2LESNGQCwW87IEX99QUSK9HosrJV3y8vLivd1OV27cuIHU1FQcOHAA9+/fZ7pfKCMjA3FxcaipqdE4TvuUehcq84Q8psDAQJw+fRrAo5vCsmwEC+im3U57+/btQ1ZWFnJzc2FmZgaxWIx3332XeZfw+Ph4xMbG4vnnn+d1D9qNGzfw888/Y+LEiTAxMcHhw4fx888/Y+zYsfDx8eHtPPQFXSmRXk9bV0o5OTnw8PAAgIduXlVp35tPW9q327l48SLOnz/Pa7ud9t577z31HiU+8lQ8PT2RlZXFy54olS+//BKbN28GAFhbW8Pf3x8VFRVQKBRITk7G+++/r7ESkvxxVJRIr6ftZ0oKhQJxcXH44IMPNPYpsdQT2+2oGpTytdAhISEBLi4uvBaBqVOnYvv27eA4DkFBQTh06JB6w3RGRgY2bNiAkydP8nY++oCKEhG0hQsXYvv27Z2Ov/baa9i6dSuAtumw2n7+Mn78eKSnp+tll+j6+nrEx8cjNTUVxsbGuHLlCs6dO4f8/Hymq+PmzJmD/Px8ODg4dLpCPHjwIJNMkUiE3NxcAG37kvLy8tRXakqlEp6ensjJyWGSra/omRIRtK528re/vcZiQcC8efOwZcsWLFq0SO8K06pVq2Bubo60tDQEBwcDaLsaTUhIYFqUwsPDER4ezuzzH6Zfv35oaWlBnz598Pzzz2vcOmxubuZltaW+oaJEBEl1n7+lpUX9WqW0tBT29vZM8w8cOIDa2lrs3bsXQ4YM0Wi1xHqhg6rdUEcmJiawtbWFn58ffH19meVnZmYiIyMDffr0UZ/HkCFDcPv2bWaZAPD8888z/fyHGTt2LH7++We4uLhg1apVGu+dP38eI0aM4P2cejsqSkSQVBM/OY7rNP3Tzs4OixYtYprffvot3zw9PXH8+HGEhYWpx4WcOHECEokEHMchLi4O0dHRzGY7DRw4EHV1dRrPksrLy9Vzhlj66quvcOLECVRVVcHGxgahoaGYMWMGs7xH/XP29vbWaO3EonOIXuIIEbAvvvhCJ7kPHjzgNm3axPn5+XFubm6cn58fl5iYyDU3NzPPnjlzJldYWKhxrLCwkJs5cybHcRx39epVztfXl1n+zp07uYiICC4zM5MTiUTc5cuXucjISG7v3r3MMjmO47Zt28b5+/tzR44c4b777jvuyJEj3NSpU7lt27YxzX1c7u7uuj6FXoEWOhBBKywshIWFBaysrNDY2Ig9e/bA0NAQ0dHRnbodaFNcXBxKSkoQExMDBwcHlJWVYdeuXXBycmLeVUEkEiEzM1Nj5V9zczPGjx+vfujOqosF0HZ1+tlnn+Hf//63esBhREQE5s2bx3S5tq+vLz7//HM4ODioj5WVlSEyMhLp6enMch8Xy79zfUK374igvfXWW0hMTISVlRUSEhJQUlKCvn37YuXKlUxvsZ07dw5nz56Fubk5AOCpp56Cm5sb/P39mWWqiMViLFu2DK+//jpsbW1RWVmJLVu2qJuV/vDDD0xvpRkYGOCll17S+pTZ39LU1IQhQ4ZoHLOwsEBzczOv59EVPvdP9WZUlIiglZWVYfjw4eA4Dt988w2kUilMTU2ZD16zsrJCU1OTuigBbVNw+Xiu8o9//APx8fEIDg6GQqGAkZER/P391Vdoffr0wcaNG7Wa2RNmWE2YMAFvv/023nrrLdjb26OsrAybNm3C+PHjmWUS/lFRIoJmYmKChoYGFBUVwdbWFkOGDEFraysePHjANDc0NBTz58/H3LlzYWNjg8rKShw8eBChoaEaX9osvqQtLCyQmJgIpVKJO3fuYMiQIRpLk4cPH671zJ4ww2rlypVYs2YNQkND0draCmNjYwQGBj50Gi0RLnqmRARt3bp1yM3NRWNjIyIjIxEZGYn8/HwsX76c6U77x1lyrc0v6V9++QWOjo4ANFsOdcRn2x9dUSqVqKurw+DBg3vUPiF6pqQdVJSI4F24cAHGxsbq5bnXrl1DQ0MD01tJfGv/hddVyyG+2gzt27cPEomkU1cFPjQ1NeHWrVudRleoWv+wsn//fkgkkk7PtNpj0TlEH1FRIr1CeXm5eu8K642z+i42NhYXL16Eu7s7QkJCEBAQwGTibEfHjx/HmjVr0KdPH40u4XxsWI6JiUFWVhY8PT0RGhqKKVOm8Nb3UN9QUSKCVl1djSVLluDKlSuwsLDA3bt38dxzz2Hjxo2wsbHR9en1WvX19UhNTcWpU6eQn5+PCRMmICQkhOnqw3HjxmH9+vUYN24cs4xHqaurQ0pKCk6ePIni4mL4+/sjLCyM+cgOfUNFiQhabGws7O3tsWTJEpiZmeH+/fv417/+hV9++QU7duzQ9ekxUVpaik2bNj10HDrrK4aHKS8vx/Lly5GZmcn09uGkSZNw9uzZHtFrsKCgAEuXLsVPP/0EOzs7hIeHIyoqCv3799f1qQkeFSUiaF5eXrhw4YLGF5VcLseECRO6bNYqdBEREXjiiScQEhLSaYMwi1lOXcnJyUFycjJSU1MxePBgBAcHIzY2llnesWPHcP36dbz66quPfLbDUmZmJk6ePIlz585h1KhRCAsLg729Pfbv34/a2locOnRIJ+fVm9CScCJogwYNQlFREVxdXdXHiouLNfYP9TY//fQTDh8+rLOVZwkJCThz5gwMDAwQGBiIPXv2YOTIkcxznZ2d8fHHH2t88XP/3wSX9QKPhIQEJCcnY+DAgQgNDcWpU6c0bg+7ubnx+gtBb0ZFiQja/Pnz8dJLL2HmzJnqDZXHjh3D4sWLdX1qzIjFYty4cQOjRo3SSf79+/exYcMG9RRevixduhShoaEICgridRw60LYxeuvWrRg9evRD3+/Tpw+OHj3K6zn1VnT7jgjepUuXcOrUKdTU1MDa2hoSiUSje3Nvs2bNGiQnJ8Pf37/Tsmw+i3FFRQWqqqrw3HPP8ZInFouRnZ2tk3Y+H3744UM36a5du7bLzcTk9+k5O88I+R3kcjlu3boFY2NjDBo0CHK5HF9//TWWLl2q61NjpqmpCb6+vmhtbUVlZaXGHz5UVFRg9uzZCAwMxMsvvwwAOHPmDPMv5+nTp+PEiRNMM7ry9ddfP/Q4jULXPrp9RwTtvffeQ0FBAXx8fHjpO9cTPE4XcqlUColEwiR/xYoVmDRpEg4dOgQvLy8Abcu1ExISmOSp5Ofn4+DBg9i+fTtv49BVt+QUCkWn23OlpaWwsLBgkqvPqCgRQcvIyMC5c+d69cKG32PlypXMitK1a9ewa9cuGBoaqm+lDRw4EPfu3WOSpzJr1izMmjWLaUZHqiuzlpYWjas0AwMDdWd6ol1UlIig2dnZQS6X6/o0ehyWj4otLS1x69YtPPnkk+pjhYWFzFvsPM449NWrV2P16tVay/z8888BAImJiXjzzTe19rmka1SUiOC078IdFhaG2NhYREVFwdLSUuPnelPvu+5iuRjgb3/7G2JiYrBgwQK0trZCKpVi586dzMavd8fJkye1VpRUy82BtgUkSqXyoT/Xk5rC9ga0+o4IDt8duoVozJgxuHz5MrPP/+abb/DFF1+oJ8/Onj0bU6ZMYZb3uLTZqbv936GqCW57fO2R0jd0pUQEJy0tTdenoLcUCgW2bt2KhQsX9ogi1JE2rxCTk5PVr/X5Fxy+UVEipBdi1SndyMgIhw4dwqJFi5h8fk/S/hmZg4ODDs9Ev1BRIkSAfmuukGpKLAthYWE4fPgwXnzxRWYZv5c2n0a88847j3XltX79eq1lEipKhAiOLucKAW37hQ4cOIA9e/bA1tZW44ub1X6h9rcNHzXHaNq0aVrLHDZsmNY+izw+WuhAiMDoeq7QsWPHunzvcZZt/15eXl7IzMyk1W69HBUlQgSmJ80V6oq29wsBbZ0snJyceLttKJPJ1AP82m9D6Eiftx6wQEWJEIHpCXOFfguLJekvvPAC8vPzYWNjw8ttQ4lEon4219U2BH3fesACFSVCBCYvLw9LlizRaMDa0/bMaHO/kIqubhsSflFRIkRg/Pz8EBwc/NC5Qk5OTjo6K02sN+/qgkKhwJUrV1BdXQ0bGxu4ubnByMhI16fV69DqO0IE5u7du1i8eLFO5grpEsdx+PLLLyGVSlFXV4dTp05BJpOhpqYGQUFBTLMLCgrw6quv4sGDB7C1tUVlZSX69u2LrVu38jJ1V5/QMhZCBEaXc4UeF4sbMJs3b8bRo0cRERGBiooKAICtrS0+/fRTrWd1FBcXhxdffBEZGRk4evQoMjIyEBkZSQP+GKCiRIjA5OfnY/ny5QgICMCLL76o8YeVN954Q/36q6+++s2f1+Z+IZVjx45hx44dCA4OVl8lOjo6orS0VOtZHd28eRPz5s1T5xoYGCAqKgo3b95knq1v6PYdIQKji7lCFy5cUC+mWLt2LWbMmPHIn4+Pj9f6OSgUCvTv3x/A/3rcNTY2wszMTOtZHU2cOBFpaWnw8/NTH0tPT8ekSZOYZ+sbKkqECIwuVpp5eHggIiICzs7OkMvlXY6bZ9lyZ+LEifjoo48QFxcHoO0W4ebNm+Hj48Mkr32bIYVCgTfffBOjRo1SP1O6fv06Jk+ezCRbn1FRIkRgOo7lbm/mzJlMMjdv3owzZ86gvLwcgG5W+S1btgxLly6FSCRCa2sr3N3dmY5h79hm6M9//rP69VNPPYXx48czydV3tCScEIGZO3euxv+ura1FaWkp3N3d1ZNSWdqyZYtOu4Tfvn0bZWVlsLOzw9ChQ3V2HoQNKkqE9AJHjx5FUVER3n33XV7ybt68CalUiurqalhbW0MikcDZ2Zl5bn19Pc6fP6/OnThxIgYNGsQ8FwDkcjlKSkpQV1ensbqQ2gxpFxUlQnoBpVIJb29vZGdnM89KS0vD22+/DR8fH9jb26O8vBznz5/H+vXrmT5jyczMxKJFi/Dkk0/C3t4eFRUVKC4uxpYtW5gXhpycHLzxxhuQy+VoaGjAgAED0NjYCFtbW2ozpG0cIURQFAqFxp+Ghgbu0KFDnK+vLy/5EomEy8zM1Dh26dIlLjg4mGluYGAgl5ycrHEsJSWFCwgIYJrLcRw3ffp0bu/evRzHcZyHhwfHcRy3ZcsW7tNPP2WerW9ooQMhAvP000936uZgY2ODDz74gJf8yspKeHh4aBwTiUQavfhYqK6uRkBAgMYxPz8/rFixgmku0Ha7MioqSuPYggULMHnyZERHRzPP1ydUlAgRmI63i/r168drt3BXV1ckJSVhwYIF6mN79+5l3m4nLCwMBw8e1CgOhw8fRlhYGNNcABg4cCAaGhpgbm6OoUOHorCwEBYWFp0m/5I/jp4pEUK6paioCAsXLsT9+/dhZ2eHiooKmJmZYfv27XBxcWGWqxpdYWlpCRsbG1RVVeHOnTsYPXo08zEWa9euxejRoxESEoKkpCR8+umnMDY2xoQJE7B27Vqt5+kzKkqECEx5eTm2bt2K77//vtNv6qmpqbycQ2trq7pjtrW1Ndzc3DSGDlZWVsLW1larmY8aXdEeH5uLc3Jy0NjYiAkTJtAkXC2jokSIwISHh2P48OGYOnVqp9EVPWV5sq5GV7CYeEv4RUWJEIERiUSQyWQ9+jd0FkP+Hoc2i+GcOXMeazwIi9uF+owWOhAiMD4+PsjOzoa3t7euT6VLupr1pM3fscPDw7X2WeTxUVEiRGCWL1+O2bNnw8nJCZaWlhrvffTRRzo6q55Bm8WQRqzrBhUlQgRm2bJlMDIygouLC/r27avr0+m1jh8/rl5urosmuPqKihIhAnPp0iVkZGRgwIABOslXKpW/+TxLV4+qtZmbnJysLkpdTfo1MDCgoqRlVJQIEZgRI0bg7t27OilKCoUC7u7uyMnJgYmJSZc/l5KSwuNZ/Y82J97u3r1b/ZqP7uukDRUlQgTG29sb0dHRmD59eqdnSqx/azcyMoKzszPq6upgY2PT5c/Z2dlpPVsqlWLkyJFwcXFBcXExVqxYASMjI6xatUq9aZfFxNuOOI7TuCLryasghYiWhBMiMB3nKakYGBhg//79zPN3796NlJQUREVFddogy3Kf1JQpU3DkyBFYWVkhJiYGTz75JMzMzCCTyZj//66qqsKaNWuQk5OD+vp6jfe+//57ptn6hooSIaRbfH19H3rcwMCA6RgH1R6kBw8eYPz48bh48SKMjY15GdkRExMDU1NTvPLKK4iMjMTBgwexZcsWTJw4EbNmzWKarW/o9h0hAsBxnHq5s1Kp7PLn+LiVlJaWxjzjYYYMGYJbt27hxx9/xLPPPgsTExM0NTXxsqgiLy8P6enpMDMzg4GBAVxdXbF27VrMnj2bipKWUVEiRABEIpG6U8HDRleoihZft5JaWlpw9epVVFdXIygoSN2Dz8zMjFlmbGwspk+fDiMjIyQmJgJoG/zn6urKLFPF0NAQxsZtX5fm5ua4c+cOBgwYgKqqKubZ+oZu3xEiABUVFerFA2VlZV3+nIODA/Nz+eGHH7Bw4UKYmJigqqoKeXl5+Pbbb3Hs2DFs2rSJaXZTUxOAtnEdAHD79m0olUoMHTqUaW5MTAxmzJgBPz8/rFy5Ejdv3oSpqSmamppoZZ6WUVEihHTLCy+8gIiICISFhUEsFkMmk+H+/fsICAhARkYGs9z9+/fD09OTlyujjurr66FUKmFhYYHm5mYkJSWhsbER8+bNg7W1Ne/n05vR7TtCBObu3btISkp66OgKPpqDFhYWIjQ0FMD/2vqYmZnhwYMHTHOvXbuGvXv3orGxESKRCJ6enhCLxXj66aeZP0trbW1VD1I0NTVFbGws0zx9RkWJEIF56623IJfLERgYqL6NxScHBwdcv34dzz77rPpYfn4+nJycmOZu2LABAPDLL79AJpMhOzsbn3zyCYC2+UYs+fj4wNPTExKJBH5+fkyfnek7KkqECExeXh4uXbr0yI4KLC1evBivvPIKZs+ejZaWFuzcuRNHjhzBBx98wDy7uLhYXZAuX74MZ2dniMVi5rnp6ek4ffo0jhw5gtWrV8PHxwcSiQR//etf1QsgiHbQMyVCBOaFF15AQkIC8yuTR/nvf/+LL7/8EuXl5bC1tcWsWbMwatQoppl/+ctf0L9/fwQEBMDT0xNjxozRSaul8vJySKVSnDp1CjU1Nbh06RLv59CbUYknRGC8vb0xf/58TJ8+HVZWVhrv8dUc9JlnnsEzzzzDS5aKj48PcnNz8c0336C+vh6//vorxGKx1seu/5ba2lrU1tairq4O5ubmvGbrA7pSIkRgdN1mSC6XY/v27UhOTkZ1dTWsra0RFBSEhQsX8jJKo7a2FjKZDDKZDCdPnsTgwYNx9uxZppmFhYWQSqWQSqVobm5GYGAgQkJCMHr0aKa5+oiKEiGkW+Li4lBSUoKYmBg4ODigrKwMu3btgpOTE/Mhgzdu3EB2djaysrKQm5uLvn37wtPTExs3bmSaKxaL4e/vD4lEAm9vb51N1tUHVJQIEYCe1GbIy8sLZ8+e1bh1dffuXfj7+zPtQScWizFw4EB4eHhALBbD09MTw4YNY5bXnlwuR319PfLz81FXV6fR2ojmKWkXPVMiRAC6ajOkKlZ8thmysrJCU1OTRlF68OAB864Kx44dg6OjI9OMrnz33Xd45513MGzYMBQWFuKpp57CTz/9hDFjxlBR0jIqSoQIQHJysvo1y07cXcnMzFS/Dg0Nxfz58zF37lzY2NigsrISBw8eVG+oZcXR0RFFRUU4c+YMbt++jZUrV6KoqAgtLS3Muzxs2rQJ69atQ2BgIMRiMY4fP46vvvoKhYWFTHP1Ed2+I0Rg7t27h/379z+0o0NSUhKTzK7GVbTHenTF6dOnER8fD39/f0ilUly+fBnXrl3Dxo0bsW/fPma5wP/GZgBQt1ZSKpUYN26cRsEmfxxdKREiMIsXL4ZCoYCfnx8vq90A3Y2raO/jjz/G3r17MXLkSJw+fRoA4OrqioKCAubZlpaWqK2thZWVFRwcHJCXl4fBgwc/8vke+X2oKBEiMFeuXEFWVhb69Omj61Ph1Z07d9S36VTP1AwMDHhZCRceHo7c3FwEBATgpZdeQlRUFAwNDfHyyy8zz9Y3VJQIERiRSISioiKddMsGgIKCAqxbtw4FBQXq24eqhRbXr19nlvvMM8/gxIkTCAsLUx9LTk7mZa/QggUL1K/DwsLg6emJpqYmuLi4MM/WN/RMiRCBuX37Nv7+97/Dzc0NlpaWGu+99tprzPODgoLg7++PoKAgmJqaarzHsvVRUVERoqOj4ejoiCtXrsDLywslJSVISkqCs7Mzs1zCL7pSIkRgEhMTUVlZCUdHRzQ0NKiP87Whs7a2FosXL+Z9A6mLiwtOnz6N9PR0TJo0CXZ2dpg0aRL69+/P63kQtuhKiRCBcXd3R2pqqs6Gy61btw6jRo3CtGnTdJJPejcqSoQIzLRp07Bv3z710Dm+1dbWIiIiAlPAV+AAAANMSURBVKampp1uH2q79150dDT27NkDAJgzZ06XV2d8DDck/KDbd4QITGhoKGJjYxEZGdmpKIwdO5Z5/uuvvw5HR0delqS3X9QQHh7ONIv0DHSlRIjAdLWRlfXmVRV3d3dkZWXxPmRQoVDAyMiI10zCP7pSIkRgdL2R1cPDA0VFRRg5ciSvuePGjcPUqVMREhICkUjEazbhD10pEUK6JT4+HmfOnIGfn1+n24eLFy9mlnvjxg1IpVKkpKTA0NAQwcHBkEgkGDFiBLNMwj8qSoSQblm2bFmX77Gep6SSnZ0NqVSKs2fPwsrKCqdOneIll7BHRYkQIjg1NTVISUnBiRMncPPmTXWzVCJ8VJQIId1SWlra5XtPPPEEs9z6+nqkpqZCKpXi6tWrGDduHIKDgzF58mTeGtMS9qgoEUK6xdXVVT1YUEW1f4jlkEE3Nze4u7sjODgYU6dOxcCBA5llEd2hokQI+UNqamqwdetWeHh4ICQkhFlOdXW1zrpYEP5QUSKE/GFyuRwBAQFIT09nmnPx4kUkJyfjzp072LFjB65du4aGhgZeNg0Tfhjq+gQIIcJXXFyMpqYmphmff/45Vq9eDWdnZ8hkMgCAqakpNm/ezDSX8Is2zxJCuqVjD7qmpiYUFhYiNjaWae5nn32Gffv2wdHREbt37wYADB8+HCUlJUxzCb+oKBFCuqVjD7p+/frB1dWV+UyjxsZG2NnZAfjfworW1la9m8Db29HtO0JItwQHB0Mul+Pq1avIzMxEWloatm3bhqVLlzLN9fDwwK5duzSO7d+/H15eXkxzCb9ooQMhpFuWLFmCgoIC+Pj4oF+/fhrvsZx8W1FRgVdffRV3795FVVUVHB0dMWDAAOzYsQNDhw5llkv4RUWJENItYrEY586dg7m5OW+ZCoUC7u7uyM7Oxg8//IDy8nLY2dlh9OjRMDSkGz69CT1TIoR0i52dHeRyOa+ZRkZGcHZ2xq+//go3Nze4ubnxmk/4Q1dKhJBuSUpKwpkzZxAVFcXrkMHdu3cjJSUFUVFRsLW15S2X8IuKEiGkW3Q1ZFDXww0JP6goEUII6THoCSEhhJAeg4oSIYSQHoOKEiGEkB6DihIhhJAeg4oSIYSQHuP/ABXqYBm2J1QJAAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":2}